1- import { afterAll , beforeAll , describe , it , afterEach , expect } from 'vitest'
1+ import { afterAll , beforeAll , describe , it , expect } from 'vitest'
22import type { ClientAPI } from '../../lib/create-contentful-api'
33import {
44 defaultClient ,
88 generateRandomId ,
99 baseEnvironmentTemplateDescription ,
1010 timeoutToCalmRateLimiting ,
11+ waitForEnvironmentToBeReady ,
1112} from '../helpers'
1213import type {
1314 CreateEnvironmentTemplateProps ,
@@ -20,29 +21,42 @@ import type {
2021type InstallTemplate = ( versionsCount ?: number ) => Promise < EnvironmentTemplateInstallationProps >
2122
2223describe ( 'Environment template API' , ( ) => {
24+ const templateDescription = `${ baseEnvironmentTemplateDescription } ${ generateRandomId ( ) } `
2325 const client = defaultClient
2426 const orgId = getTestOrganizationId ( )
25- const templateDescription = `${ baseEnvironmentTemplateDescription } ${ generateRandomId ( ) } `
2627
27- afterAll ( timeoutToCalmRateLimiting )
28+ describe ( 'Environment template' , ( ) => {
29+ let createdTemplate : EnvironmentTemplate
30+ let draftTemplate : CreateEnvironmentTemplateProps
31+
32+ async function setupEnvironmentTemplate ( deleteTemplateBeforeSetup : boolean = false ) {
33+ if ( createdTemplate && deleteTemplateBeforeSetup ) {
34+ await createdTemplate . delete ( )
35+ }
36+ draftTemplate = createDraftTemplate ( )
37+ createdTemplate = await client . createEnvironmentTemplate ( orgId , draftTemplate )
38+ }
2839
29- afterEach ( async ( ) => {
30- await clearEnvironmentTemplates ( client , orgId , templateDescription )
31- } )
40+ beforeAll ( async ( ) => {
41+ await setupEnvironmentTemplate ( )
42+ } )
43+
44+ afterAll ( ( ) => {
45+ // Cleanup
46+ createdTemplate . delete ( )
47+ timeoutToCalmRateLimiting ( )
48+ } )
3249
33- describe ( 'Environment template' , ( ) => {
3450 it ( 'creates an environment template' , async ( ) => {
35- const draftTemplate = createDraftTemplate ( )
36- const { sys, ...template } = await client . createEnvironmentTemplate ( orgId , draftTemplate )
51+ const { sys, ...template } = createdTemplate
3752 expect ( template ) . toEqual ( draftTemplate )
3853 expect ( sys ) . toBeDefined ( )
3954 } )
4055
4156 it ( 'gets an environment template' , async ( ) => {
42- const draftTemplate = createDraftTemplate ( )
4357 const {
4458 sys : { id : templateId } ,
45- } = await client . createEnvironmentTemplate ( orgId , draftTemplate )
59+ } = createdTemplate
4660
4761 const { sys, ...template } = await client . getEnvironmentTemplate ( {
4862 organizationId : orgId ,
@@ -54,10 +68,9 @@ describe('Environment template API', () => {
5468 } )
5569
5670 it ( 'gets an environment template with select filter applied' , async ( ) => {
57- const draftTemplate = createDraftTemplate ( )
5871 const {
5972 sys : { id : templateId } ,
60- } = await client . createEnvironmentTemplate ( orgId , draftTemplate )
73+ } = createdTemplate
6174
6275 const response = await client . getEnvironmentTemplate ( {
6376 organizationId : orgId ,
@@ -71,42 +84,41 @@ describe('Environment template API', () => {
7184 } )
7285
7386 it ( 'gets a collection of environment templates' , async ( ) => {
74- const draftTemplate = createDraftTemplate ( )
75- await client . createEnvironmentTemplate ( orgId , draftTemplate )
7687 const { items : templates } = await client . getEnvironmentTemplates ( orgId )
7788
78- expect (
79- templates . filter ( ( { description } ) => description === templateDescription ) ,
80- ) . toHaveLength ( 1 )
89+ const fetchedTemplate = templates . find ( ( { sys : { id } } ) => id === createdTemplate . sys . id )
90+
91+ expect ( fetchedTemplate ) . toBeDefined ( )
92+
93+ const { sys, ...template } = fetchedTemplate !
8194
82- const [ { sys, ...template } ] = templates
8395 expect ( template ) . toEqual ( draftTemplate )
8496 expect ( sys ) . toBeDefined ( )
8597 } )
8698
8799 it ( 'gets a collection of environment templates with select filter applied' , async ( ) => {
88- const draftTemplate = createDraftTemplate ( )
89- await client . createEnvironmentTemplate ( orgId , draftTemplate )
90100 const { items : templates } = await client . getEnvironmentTemplates ( orgId , {
91- select : 'description' ,
101+ select : 'sys, description' ,
92102 } )
93103
94- expect (
95- templates . filter ( ( { description } ) => description === templateDescription ) ,
96- ) . toHaveLength ( 1 )
104+ const fetchedTemplate = templates . find ( ( { sys : { id } } ) => id === createdTemplate . sys . id )
105+
106+ expect ( fetchedTemplate ) . toBeDefined ( )
97107
98- const [ firstTemplate ] = templates
99- expect ( firstTemplate ) . toEqual ( { description : templateDescription } )
108+ const { sys, ...template } = fetchedTemplate !
109+
110+ expect ( template ) . toEqual ( { description : templateDescription } )
111+ expect ( sys ) . toBeDefined ( )
100112 } )
101113
102114 it ( 'gets a collection of environment templates with forTemplatedSpaces filter applied' , async ( ) => {
103- const draftTemplate = createDraftTemplate ( )
104- await client . createEnvironmentTemplate ( orgId , draftTemplate )
105115 const { items : templates } = await client . getEnvironmentTemplates ( orgId , {
106116 forTemplatedSpaces : true ,
107117 } )
108118
109- expect ( templates ) . toHaveLength ( 0 )
119+ const fetchedTemplate = templates . find ( ( { sys : { id } } ) => id === createdTemplate . sys . id )
120+
121+ expect ( fetchedTemplate ) . toBeUndefined ( )
110122 } )
111123
112124 it ( 'updates an environment template' , async ( ) => {
@@ -127,40 +139,36 @@ describe('Environment template API', () => {
127139 } )
128140
129141 it ( 'updates the version description and name of an environment template' , async ( ) => {
130- const draftTemplate = createDraftTemplate ( )
131- const template = await client . createEnvironmentTemplate ( orgId , draftTemplate )
132-
133142 const updatedVersionName = 'Updated version name'
134143 const updatedVersionDescription = 'Updated version description'
135- const updatedTemplateVersion = await template . updateVersion ( {
144+ const updatedTemplateVersion = await createdTemplate . updateVersion ( {
136145 versionName : updatedVersionName ,
137146 versionDescription : updatedVersionDescription ,
138147 } )
139148
140- expect ( updatedTemplateVersion . sys . version ) . toBe ( template . sys . version )
149+ expect ( updatedTemplateVersion . sys . version ) . toBe ( createdTemplate . sys . version )
141150 expect ( updatedTemplateVersion . versionName ) . toBe ( updatedVersionName )
142151 expect ( updatedTemplateVersion . versionDescription ) . toBe ( updatedVersionDescription )
143152 } )
144153
145154 it ( 'gets a version of an environment template' , async ( ) => {
146- const draftTemplate = createDraftTemplate ( )
147- const template = await client . createEnvironmentTemplate ( orgId , draftTemplate )
148- template . name = 'Updated name'
149- await template . update ( )
155+ createdTemplate . name = 'Updated name'
156+ await createdTemplate . update ( )
150157
151158 const secondTemplateVersion = await client . getEnvironmentTemplate ( {
152159 version : 2 ,
153160 organizationId : orgId ,
154- environmentTemplateId : template . sys . id ,
161+ environmentTemplateId : createdTemplate . sys . id ,
155162 } )
156163
157164 expect ( secondTemplateVersion . sys . version ) . toBe ( 2 )
158165 } )
159166
160167 it ( 'deletes an environment template' , async ( ) => {
161- const draftTemplate = createDraftTemplate ( )
162- const template = await client . createEnvironmentTemplate ( orgId , draftTemplate )
163- await expect ( template . delete ( ) ) . resolves . not . toThrow ( )
168+ await expect ( createdTemplate . delete ( ) ) . resolves . not . toThrow ( )
169+
170+ // deleted the template so reset it
171+ await setupEnvironmentTemplate ( false )
164172 } )
165173 } )
166174
@@ -170,8 +178,9 @@ describe('Environment template API', () => {
170178 let installTemplate : InstallTemplate
171179
172180 beforeAll ( async ( ) => {
173- space = ( await createTestSpace ( client , 'EnvironmentTemplate' ) ) as Space
174- environment = ( await createTestEnvironment ( space , generateRandomId ( 'env' ) ) ) as Environment
181+ space = await createTestSpace ( client , 'EnvironmentTemplate' )
182+ environment = await createTestEnvironment ( space , generateRandomId ( 'env' ) )
183+ await waitForEnvironmentToBeReady ( space , environment )
175184
176185 await enableSpace ( client , space )
177186 installTemplate = createInstallTemplate ( {
@@ -186,6 +195,7 @@ describe('Environment template API', () => {
186195 afterAll ( async ( ) => {
187196 await environment ?. delete ( )
188197 await space ?. delete ( )
198+ await clearEnvironmentTemplates ( client , orgId , templateDescription )
189199 } )
190200
191201 it ( 'installs an environment template' , async ( ) => {
@@ -373,5 +383,9 @@ async function clearEnvironmentTemplates(
373383 return description === templateDescription
374384 }
375385
376- await Promise . all ( templates . filter ( filterByDescription ) . map ( ( template ) => template . delete ( ) ) )
386+ const templatesToBeDeleted = templates . filter ( filterByDescription )
387+
388+ for ( const template of templatesToBeDeleted ) {
389+ await template . delete ( )
390+ }
377391}
0 commit comments