@@ -45,33 +45,30 @@ describe('EventsFactory.bulkSetEventMarks', () => {
4545 } ) ;
4646 } ) ;
4747
48- it ( 'should set starred mark when enabled is true' , async ( ) => {
49- const factory = new EventsFactory ( projectId ) ;
50- const id = new ObjectId ( ) ;
51-
52- collectionMock . updateMany . mockResolvedValue ( {
53- acknowledged : true ,
54- modifiedCount : 1 ,
55- } ) ;
56-
57- const result = await factory . bulkSetEventMarks ( [ id . toString ( ) ] , 'starred' , true ) ;
58-
59- expect ( result ) . toEqual ( {
60- acknowledged : true ,
61- modifiedCount : 1 ,
62- } ) ;
63- expect ( collectionMock . updateMany ) . toHaveBeenCalledWith (
64- {
65- _id : { $in : [ id ] } ,
66- 'marks.starred' : { $exists : false } ,
48+ it . each ( [
49+ {
50+ title : 'should set starred mark when enabled is true' ,
51+ mark : 'starred' ,
52+ enabled : true ,
53+ expectedQuery : {
54+ markExists : false ,
6755 } ,
68- expect . objectContaining ( {
56+ expectedUpdate : expect . objectContaining ( {
6957 $set : { 'marks.starred' : expect . any ( Number ) } ,
70- } )
71- ) ;
72- } ) ;
73-
74- it ( 'should clear mark when enabled is false' , async ( ) => {
58+ } ) ,
59+ expectResult : true ,
60+ } ,
61+ {
62+ title : 'should clear mark when enabled is false' ,
63+ mark : 'ignored' ,
64+ enabled : false ,
65+ expectedQuery : {
66+ markExists : true ,
67+ } ,
68+ expectedUpdate : { $unset : { 'marks.ignored' : '' } } ,
69+ expectResult : false ,
70+ } ,
71+ ] ) ( '$title' , async ( { mark, enabled, expectedQuery, expectedUpdate, expectResult } ) => {
7572 const factory = new EventsFactory ( projectId ) ;
7673 const id = new ObjectId ( ) ;
7774
@@ -80,14 +77,21 @@ describe('EventsFactory.bulkSetEventMarks', () => {
8077 modifiedCount : 1 ,
8178 } ) ;
8279
83- await factory . bulkSetEventMarks ( [ id . toString ( ) ] , 'ignored' , false ) ;
80+ const result = await factory . bulkSetEventMarks ( [ id . toString ( ) ] , mark , enabled ) ;
81+
82+ if ( expectResult ) {
83+ expect ( result ) . toEqual ( {
84+ acknowledged : true ,
85+ modifiedCount : 1 ,
86+ } ) ;
87+ }
8488
8589 expect ( collectionMock . updateMany ) . toHaveBeenCalledWith (
8690 {
8791 _id : { $in : [ id ] } ,
88- ' marks.ignored' : { $exists : true } ,
92+ [ ` marks.${ mark } ` ] : { $exists : expectedQuery . markExists } ,
8993 } ,
90- { $unset : { 'marks.ignored' : '' } }
94+ expectedUpdate
9195 ) ;
9296 } ) ;
9397
0 commit comments