@@ -626,14 +626,15 @@ describe(WorkflowService.name, () => {
626626 actions : [ ] ,
627627 } ) ;
628628
629- const updated = await sut . update ( auth , created . id , {
629+ await sut . update ( auth , created . id , {
630630 triggerType : PluginTriggerType . AssetCreate ,
631631 } ) ;
632632
633- expect ( updated . triggerType ) . toBe ( PluginTriggerType . AssetCreate ) ;
633+ const fetched = await sut . get ( auth , created . id ) ;
634+ expect ( fetched . triggerType ) . toBe ( PluginTriggerType . AssetCreate ) ;
634635 } ) ;
635636
636- it ( 'should use existing trigger type when triggerType not provided in update ' , async ( ) => {
637+ it ( 'should add filters ' , async ( ) => {
637638 const { sut, ctx } = setup ( ) ;
638639 const { user } = await ctx . newUser ( ) ;
639640 const auth = factory . auth ( { user } ) ;
@@ -643,19 +644,66 @@ describe(WorkflowService.name, () => {
643644 name : 'test-workflow' ,
644645 description : 'Test' ,
645646 enabled : true ,
646- filters : [ { pluginFilterId : testFilterId } ] ,
647+ filters : [ ] ,
647648 actions : [ ] ,
648649 } ) ;
649650
650- const updated = await sut . update ( auth , created . id , {
651+ await sut . update ( auth , created . id , {
651652 filters : [
652- { pluginFilterId : testFilterId , filterConfig : { updated : true } } ,
653+ { pluginFilterId : testFilterId , filterConfig : { first : true } } ,
653654 { pluginFilterId : testFilterId , filterConfig : { second : true } } ,
654655 ] ,
655656 } ) ;
656657
657- expect ( updated . triggerType ) . toBe ( PluginTriggerType . AssetCreate ) ;
658- expect ( updated . filters ) . toHaveLength ( 2 ) ;
658+ const fetched = await sut . get ( auth , created . id ) ;
659+ expect ( fetched . filters ) . toHaveLength ( 2 ) ;
660+ expect ( fetched . filters [ 0 ] . filterConfig ) . toEqual ( { first : true } ) ;
661+ expect ( fetched . filters [ 1 ] . filterConfig ) . toEqual ( { second : true } ) ;
662+ } ) ;
663+
664+ it ( 'should replace existing filters' , async ( ) => {
665+ const { sut, ctx } = setup ( ) ;
666+ const { user } = await ctx . newUser ( ) ;
667+ const auth = factory . auth ( { user } ) ;
668+
669+ const created = await sut . create ( auth , {
670+ triggerType : PluginTriggerType . AssetCreate ,
671+ name : 'test-workflow' ,
672+ description : 'Test' ,
673+ enabled : true ,
674+ filters : [ { pluginFilterId : testFilterId , filterConfig : { original : true } } ] ,
675+ actions : [ ] ,
676+ } ) ;
677+
678+ await sut . update ( auth , created . id , {
679+ filters : [ { pluginFilterId : testFilterId , filterConfig : { replaced : true } } ] ,
680+ } ) ;
681+
682+ const fetched = await sut . get ( auth , created . id ) ;
683+ expect ( fetched . filters ) . toHaveLength ( 1 ) ;
684+ expect ( fetched . filters [ 0 ] . filterConfig ) . toEqual ( { replaced : true } ) ;
685+ } ) ;
686+
687+ it ( 'should remove existing filters' , async ( ) => {
688+ const { sut, ctx } = setup ( ) ;
689+ const { user } = await ctx . newUser ( ) ;
690+ const auth = factory . auth ( { user } ) ;
691+
692+ const created = await sut . create ( auth , {
693+ triggerType : PluginTriggerType . AssetCreate ,
694+ name : 'test-workflow' ,
695+ description : 'Test' ,
696+ enabled : true ,
697+ filters : [ { pluginFilterId : testFilterId , filterConfig : { toRemove : true } } ] ,
698+ actions : [ ] ,
699+ } ) ;
700+
701+ await sut . update ( auth , created . id , {
702+ filters : [ ] ,
703+ } ) ;
704+
705+ const fetched = await sut . get ( auth , created . id ) ;
706+ expect ( fetched . filters ) . toHaveLength ( 0 ) ;
659707 } ) ;
660708 } ) ;
661709
0 commit comments