diff --git a/packages/core/client/src/__tests__/e2e/createCollections.test.ts b/packages/core/client/src/__tests__/e2e/createCollections.test.ts index f14d714bf..83081236d 100644 --- a/packages/core/client/src/__tests__/e2e/createCollections.test.ts +++ b/packages/core/client/src/__tests__/e2e/createCollections.test.ts @@ -253,4 +253,12 @@ test.describe('createCollections', () => { await expect(page.getByRole('menuitem', { name: 'collection1' })).toBeVisible(); await expect(page.getByRole('menuitem', { name: 'collection2' })).toBeVisible(); }); + + test('no page, just only create collections', async ({ page, createCollections }) => { + await createCollections(pageConfig.collections); + await page.goto('/admin/settings/collection-manager/collections'); + + await expect(page.getByText('collection1')).toBeVisible(); + await expect(page.getByText('collection2')).toBeVisible(); + }); }); diff --git a/packages/core/test/src/client/e2eUtils.ts b/packages/core/test/src/client/e2eUtils.ts index d5665cd6e..ac69b7c85 100644 --- a/packages/core/test/src/client/e2eUtils.ts +++ b/packages/core/test/src/client/e2eUtils.ts @@ -165,7 +165,10 @@ class NocoPage { } } -export const test = base.extend<{ mockPage: (config?: PageConfig) => NocoPage }>({ +export const test = base.extend<{ + mockPage: (config?: PageConfig) => NocoPage; + createCollections: (collectionSettings: CollectionSetting | CollectionSetting[]) => Promise; +}>({ mockPage: async ({ page }, use) => { // 保证每个测试运行时 faker 的随机值都是一样的 faker.seed(1); @@ -184,6 +187,21 @@ export const test = base.extend<{ mockPage: (config?: PageConfig) => NocoPage }> await nocoPage.destroy(); } }, + createCollections: async ({ page }, use) => { + let collectionsName = []; + + const _createCollections = async (collectionSettings: CollectionSetting | CollectionSetting[]) => { + collectionSettings = Array.isArray(collectionSettings) ? collectionSettings : [collectionSettings]; + collectionsName = collectionSettings.map((item) => item.name); + await createCollections(collectionSettings); + }; + + await use(_createCollections); + + if (collectionsName.length) { + await deleteCollections(collectionsName); + } + }, }); const getStorageItem = (key: string, storageState: any) => { @@ -357,7 +375,7 @@ const deleteKeyOfCollection = (collectionSettings: CollectionSetting[]) => { * @param collectionSettings * @returns */ -export const createCollections = async (collectionSettings: CollectionSetting | CollectionSetting[]) => { +const createCollections = async (collectionSettings: CollectionSetting | CollectionSetting[]) => { const api = await request.newContext({ storageState: require.resolve('../../../../../playwright/.auth/admin.json'), });