@@ -51,6 +51,10 @@ describe('Archiver worker', () => {
51
51
await eventsCollection . insertMany ( mockedEvents ) ;
52
52
} ) ;
53
53
54
+ beforeEach ( async ( ) => {
55
+ await db . collection ( 'releases' ) . deleteMany ( { } ) ;
56
+ } )
57
+
54
58
test ( 'Should correctly remove old events' , async ( ) => {
55
59
/**
56
60
* Worker initialization
@@ -111,7 +115,9 @@ describe('Archiver worker', () => {
111
115
test ( 'Should remove old releases' , async ( ) => {
112
116
await db . collection ( 'releases' ) . insertMany ( mockedReleases ) ;
113
117
114
- const releaseToStay = {
118
+ const mockedReleasesLength = mockedReleases . length ;
119
+
120
+ const releasesToStay = {
115
121
_id : new ObjectId ( ) ,
116
122
projectId : '5e4ff518628a6c714515f4da' ,
117
123
release : 'releasetostay' ,
@@ -123,7 +129,7 @@ describe('Archiver worker', () => {
123
129
/**
124
130
* Insert one release with object id based on current time, it should not be removed
125
131
*/
126
- await db . collection ( 'releases' ) . insert ( releaseToStay ) ;
132
+ await db . collection ( 'releases' ) . insert ( releasesToStay )
127
133
128
134
const worker = new ArchiverWorker ( ) ;
129
135
@@ -136,11 +142,41 @@ describe('Archiver worker', () => {
136
142
. find ( { } )
137
143
. toArray ( ) ;
138
144
139
- expect ( newReleasesCollection ) . toEqual ( [ releaseToStay ] ) ;
140
- expect ( gridFsDeleteMock ) . toHaveBeenCalledTimes ( mockedReleases . length ) ;
145
+ expect ( newReleasesCollection ) . toEqual ( [
146
+ mockedReleases [ mockedReleasesLength - 2 ] ,
147
+ mockedReleases [ mockedReleasesLength - 1 ] ,
148
+ releasesToStay ,
149
+ ] ) ;
150
+
151
+ expect ( gridFsDeleteMock ) . toHaveBeenCalledTimes ( mockedReleases . length - 2 ) ;
141
152
await worker . finish ( ) ;
142
153
} ) ;
143
154
155
+ test ( 'Should leave two releases if all of the releases are more than month old' , async ( ) => {
156
+ /**
157
+ * Clear collection after previous test
158
+ */
159
+ await db . collection ( 'releases' ) . insertMany ( mockedReleases ) ;
160
+
161
+ const mockedReleasesLength = mockedReleases . length ;
162
+
163
+ const worker = new ArchiverWorker ( ) ;
164
+
165
+ await worker . start ( ) ;
166
+
167
+ await worker [ 'removeOldReleases' ] ( mockedProject ) ;
168
+
169
+ const newReleasesCollection = await db . collection ( 'releases' )
170
+ . find ( { } )
171
+ . toArray ( ) ;
172
+
173
+ expect ( newReleasesCollection ) . toEqual ( [
174
+ mockedReleases [ mockedReleasesLength - 2 ] ,
175
+ mockedReleases [ mockedReleasesLength - 1 ] ,
176
+ ] )
177
+ await worker . finish ( ) ;
178
+ } )
179
+
144
180
afterAll ( async ( ) => {
145
181
await db . dropCollection ( 'releases' ) ;
146
182
await db . dropCollection ( 'projects' ) ;
0 commit comments