1- import * as fs from "fs/promises" ;
2- import * as os from "os" ;
3- import * as path from "path" ;
41import { test as baseTest , expect } from "@playwright/test" ;
52import { SharedSlice } from "@prismicio/types-internal/lib/customtypes" ;
63import {
@@ -48,10 +45,10 @@ type Fixtures = {
4845 /**
4946 * Data
5047 */
51- reusablePageType : { name : string } ;
52- singlePageType : { name : string } ;
53- reusableCustomType : { name : string } ;
54- singleCustomType : { name : string } ;
48+ reusablePageType : { name : string ; id : string } ;
49+ singlePageType : { name : string ; id : string } ;
50+ reusableCustomType : { name : string ; id : string } ;
51+ singleCustomType : { name : string ; id : string } ;
5552 slice : { name : string } ;
5653 repeatableZoneSlice : { name : string } ;
5754 firstSliceLibrary : { id : string } ;
@@ -112,55 +109,95 @@ export const test = baseTest.extend<Options & Fixtures>({
112109 /**
113110 * Data
114111 */
115- reusablePageType : async ( { pageTypesTablePage } , use ) => {
112+ reusablePageType : async ( { pageTypesTablePage, manager } , use ) => {
116113 await pageTypesTablePage . goto ( ) ;
117114 await pageTypesTablePage . openCreateDialog ( ) ;
118115
119- const pageTypeName = "Page Type " + generateRandomId ( ) ;
116+ const uuid = generateRandomId ( ) ;
117+ const pageTypeName = "Page Type " + uuid ;
118+ const pageTypeID = `page_type_${ uuid } ` ;
120119 await pageTypesTablePage . createTypeDialog . createType (
121120 pageTypeName ,
122121 "reusable" ,
123122 ) ;
124123
125- await use ( { name : pageTypeName } ) ;
124+ await use ( { name : pageTypeName , id : pageTypeID } ) ;
125+
126+ try {
127+ await manager . customTypes . deleteCustomType ( {
128+ id : pageTypeID ,
129+ } ) ;
130+ } catch ( _ ) {
131+ // noop - the page type is already deleted
132+ }
126133 } ,
127- singlePageType : async ( { pageTypesTablePage } , use ) => {
134+ singlePageType : async ( { pageTypesTablePage, manager } , use ) => {
128135 await pageTypesTablePage . goto ( ) ;
129136 await pageTypesTablePage . openCreateDialog ( ) ;
130137
131- const pageTypeName = "Page Type " + generateRandomId ( ) ;
138+ const uuid = generateRandomId ( ) ;
139+ const pageTypeName = "Page Type " + uuid ;
140+ const pageTypeID = `page_type_${ uuid } ` ;
132141 await pageTypesTablePage . createTypeDialog . createType (
133142 pageTypeName ,
134143 "single" ,
135144 ) ;
136145
137- await use ( { name : pageTypeName } ) ;
146+ await use ( { name : pageTypeName , id : pageTypeID } ) ;
147+
148+ try {
149+ await manager . customTypes . deleteCustomType ( {
150+ id : pageTypeID ,
151+ } ) ;
152+ } catch ( _ ) {
153+ // noop - the page type is already deleted
154+ }
138155 } ,
139- reusableCustomType : async ( { customTypesTablePage } , use ) => {
156+ reusableCustomType : async ( { customTypesTablePage, manager } , use ) => {
140157 await customTypesTablePage . goto ( ) ;
141158 await customTypesTablePage . openCreateDialog ( ) ;
142159
143- const customTypeName = "Custom Type " + generateRandomId ( ) ;
160+ const uuid = generateRandomId ( ) ;
161+ const customTypeName = "Custom Type " + uuid ;
162+ const customTypeID = `custom_type_${ uuid } ` ;
144163 await customTypesTablePage . createTypeDialog . createType (
145164 customTypeName ,
146165 "reusable" ,
147166 ) ;
148167
149- await use ( { name : customTypeName } ) ;
168+ await use ( { name : customTypeName , id : customTypeID } ) ;
169+
170+ try {
171+ await manager . customTypes . deleteCustomType ( {
172+ id : customTypeID ,
173+ } ) ;
174+ } catch ( _ ) {
175+ // noop - the custom type is already deleted
176+ }
150177 } ,
151- singleCustomType : async ( { customTypesTablePage } , use ) => {
178+ singleCustomType : async ( { customTypesTablePage, manager } , use ) => {
152179 await customTypesTablePage . goto ( ) ;
153180 await customTypesTablePage . openCreateDialog ( ) ;
154181
155- const customTypeName = "Custom Type " + generateRandomId ( ) ;
182+ const uuid = generateRandomId ( ) ;
183+ const customTypeName = "Custom Type " + uuid ;
184+ const customTypeID = `custom_type_${ uuid } ` ;
156185 await customTypesTablePage . createTypeDialog . createType (
157186 customTypeName ,
158187 "single" ,
159188 ) ;
160189
161- await use ( { name : customTypeName } ) ;
190+ await use ( { name : customTypeName , id : customTypeID } ) ;
191+
192+ try {
193+ await manager . customTypes . deleteCustomType ( {
194+ id : customTypeID ,
195+ } ) ;
196+ } catch ( _ ) {
197+ // noop - the custom type is already deleted
198+ }
162199 } ,
163- slice : async ( { slicesListPage } , use ) => {
200+ slice : async ( { slicesListPage, firstSliceLibrary , manager } , use ) => {
164201 await slicesListPage . goto ( ) ;
165202 await expect ( slicesListPage . breadcrumbLabel ) . toBeVisible ( ) ;
166203 await slicesListPage . addSliceDropdown . click ( ) ;
@@ -170,6 +207,15 @@ export const test = baseTest.extend<Options & Fixtures>({
170207 await slicesListPage . createSliceDialog . createSlice ( sliceName ) ;
171208
172209 await use ( { name : sliceName } ) ;
210+
211+ try {
212+ await manager . slices . deleteSlice ( {
213+ libraryID : firstSliceLibrary . id ,
214+ sliceID : sliceName . toLowerCase ( ) ,
215+ } ) ;
216+ } catch ( _ ) {
217+ // noop - the slice is already deleted
218+ }
173219 } ,
174220 repeatableZoneSlice : async ( { firstSliceLibrary, manager } , use ) => {
175221 const sliceName = "Slice" + generateRandomId ( ) ;
@@ -196,6 +242,11 @@ export const test = baseTest.extend<Options & Fixtures>({
196242 } ) ;
197243
198244 await use ( { name : model . name } ) ;
245+
246+ await manager . slices . deleteSlice ( {
247+ libraryID : firstSliceLibrary . id ,
248+ sliceID : model . id ,
249+ } ) ;
199250 } ,
200251 firstSliceLibrary : async ( { manager } , use ) => {
201252 const config = await manager . project . getSliceMachineConfig ( ) ;
@@ -280,13 +331,6 @@ export const test = baseTest.extend<Options & Fixtures>({
280331 const newContext = await browser . newContext ( { storageState } ) ;
281332 const page = await newContext . newPage ( ) ;
282333
283- // Logout user by default
284- try {
285- await fs . rm ( path . join ( os . homedir ( ) , ".prismic" ) ) ;
286- } catch ( error ) {
287- // Ignore since it means the user is already logged out
288- }
289-
290334 // Propagate the modified page to the test
291335 await use ( page ) ;
292336
0 commit comments