@@ -21,6 +21,8 @@ describe('syncServicesFromPrebuilt', () => {
2121 prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
2222 namespaceDirectory,
2323 substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
24+ excludeServices : [ ] ,
25+ invertExcludeServices : false ,
2426 } )
2527
2628 expect ( services ) . toStrictEqual < Service [ ] > ( [
@@ -67,6 +69,8 @@ describe('syncServicesFromPrebuilt', () => {
6769 prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
6870 namespaceDirectory,
6971 substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
72+ excludeServices : [ ] ,
73+ invertExcludeServices : false ,
7074 } )
7175
7276 expect ( services ) . toStrictEqual < Service [ ] > ( [
@@ -113,6 +117,8 @@ describe('syncServicesFromPrebuilt', () => {
113117 prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
114118 namespaceDirectory,
115119 substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
120+ excludeServices : [ ] ,
121+ invertExcludeServices : false ,
116122 } )
117123
118124 expect ( services ) . toStrictEqual < Service [ ] > ( [
@@ -136,6 +142,60 @@ describe('syncServicesFromPrebuilt', () => {
136142 expect ( await readContent ( `${ namespaceDirectory } /services/b/generated.yaml` ) ) . toBe ( serviceB )
137143 } )
138144
145+ it ( 'does not write service manifest if it was exluded' , async ( ) => {
146+ const namespaceDirectory = await createEmptyDirectory ( )
147+ await fs . mkdir ( `${ namespaceDirectory } /applications` )
148+ await fs . mkdir ( `${ namespaceDirectory } /services/a` , { recursive : true } )
149+ await fs . writeFile ( `${ namespaceDirectory } /applications/pr-123--a.yaml` , applicationPushedOnOutdatedCommit )
150+ await fs . writeFile ( `${ namespaceDirectory } /services/a/generated.yaml` , 'this-should-be-kept' )
151+
152+ await syncServicesFromPrebuilt ( {
153+ currentHeadSha : 'current-sha' ,
154+ overlay : 'pr' ,
155+ namespace : 'pr-123' ,
156+ sourceRepositoryName : 'source-repository' ,
157+ destinationRepository : 'octocat/destination-repository' ,
158+ prebuiltBranch : 'prebuilt/source-repository/pr' ,
159+ prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
160+ namespaceDirectory,
161+ substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
162+ excludeServices : [ 'a' ] ,
163+ invertExcludeServices : false ,
164+ } )
165+
166+ expect ( await fs . readdir ( `${ namespaceDirectory } /applications` ) ) . toStrictEqual ( [ 'pr-123--a.yaml' , 'pr-123--b.yaml' ] )
167+ expect ( await readContent ( `${ namespaceDirectory } /applications/pr-123--a.yaml` ) ) . toBe (
168+ applicationPushedOnOutdatedCommit ,
169+ )
170+ expect ( await readContent ( `${ namespaceDirectory } /services/a/generated.yaml` ) ) . toBe ( 'this-should-be-kept' )
171+ } )
172+
173+ it ( 'writes service manifest if it was exluded but inverted' , async ( ) => {
174+ const namespaceDirectory = await createEmptyDirectory ( )
175+ await fs . mkdir ( `${ namespaceDirectory } /applications` )
176+ await fs . mkdir ( `${ namespaceDirectory } /services/a` , { recursive : true } )
177+ await fs . writeFile ( `${ namespaceDirectory } /applications/pr-123--a.yaml` , applicationPushedOnOutdatedCommit )
178+ await fs . writeFile ( `${ namespaceDirectory } /services/a/generated.yaml` , 'this-should-be-updated' )
179+
180+ await syncServicesFromPrebuilt ( {
181+ currentHeadSha : 'current-sha' ,
182+ overlay : 'pr' ,
183+ namespace : 'pr-123' ,
184+ sourceRepositoryName : 'source-repository' ,
185+ destinationRepository : 'octocat/destination-repository' ,
186+ prebuiltBranch : 'prebuilt/source-repository/pr' ,
187+ prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
188+ namespaceDirectory,
189+ substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
190+ excludeServices : [ 'a' ] ,
191+ invertExcludeServices : true ,
192+ } )
193+
194+ expect ( await fs . readdir ( `${ namespaceDirectory } /applications` ) ) . toStrictEqual ( [ 'pr-123--a.yaml' ] )
195+ expect ( await readContent ( `${ namespaceDirectory } /applications/pr-123--a.yaml` ) ) . toBe ( applicationA )
196+ expect ( await readContent ( `${ namespaceDirectory } /services/a/generated.yaml` ) ) . toBe ( serviceA )
197+ } )
198+
139199 it ( 'deletes a service which does not exist in the prebuilt branch' , async ( ) => {
140200 const namespaceDirectory = await createEmptyDirectory ( )
141201 await fs . mkdir ( `${ namespaceDirectory } /applications` )
@@ -151,6 +211,8 @@ describe('syncServicesFromPrebuilt', () => {
151211 prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
152212 namespaceDirectory,
153213 substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
214+ excludeServices : [ ] ,
215+ invertExcludeServices : false ,
154216 } )
155217
156218 expect ( services ) . toStrictEqual < Service [ ] > ( [
@@ -199,6 +261,8 @@ describe('syncServicesFromPrebuilt', () => {
199261 prebuiltDirectory : `${ __dirname } /fixtures/prebuilt` ,
200262 namespaceDirectory,
201263 substituteVariables : new Map < string , string > ( [ [ 'NAMESPACE' , 'pr-123' ] ] ) ,
264+ excludeServices : [ ] ,
265+ invertExcludeServices : false ,
202266 } )
203267
204268 expect ( services ) . toStrictEqual < Service [ ] > ( [
0 commit comments