diff --git a/e2e/playwright/desktop-export.spec.ts b/e2e/playwright/desktop-export.spec.ts index cb487af6d..9db8b98a3 100644 --- a/e2e/playwright/desktop-export.spec.ts +++ b/e2e/playwright/desktop-export.spec.ts @@ -1,39 +1,33 @@ -import { test, expect } from '@playwright/test' -import { join } from 'path' +import { test, expect } from './zoo-test' +import path from 'path' import { getUtils, setupElectron, - tearDown, executorInputPath, + getPlaywrightDownloadDir, } from './test-utils' import fsp from 'fs/promises' -test.afterEach(async ({ page }, testInfo) => { - await tearDown(page, testInfo) -}) - test( 'export works on the first try', { tag: '@electron' }, - async ({ browserName }, testInfo) => { - const { electronApp, page } = await setupElectron({ - testInfo, - folderSetupFn: async (dir) => { - const bracketDir = join(dir, 'bracket') - await Promise.all([fsp.mkdir(bracketDir, { recursive: true })]) - await Promise.all([ - fsp.copyFile( - executorInputPath('router-template-slate.kcl'), - join(bracketDir, 'other.kcl') - ), - fsp.copyFile( - executorInputPath('focusrite_scarlett_mounting_braket.kcl'), - join(bracketDir, 'main.kcl') - ), - ]) - }, - }) - await page.setViewportSize({ width: 1200, height: 500 }) + async ({ page, context }, testInfo) => { + context.folderSetupFn(async (dir) => { + const bracketDir = path.join(dir, 'bracket') + await Promise.all([fsp.mkdir(bracketDir, { recursive: true })]) + await Promise.all([ + fsp.copyFile( + executorInputPath('router-template-slate.kcl'), + path.join(bracketDir, 'other.kcl') + ), + fsp.copyFile( + executorInputPath('focusrite_scarlett_mounting_braket.kcl'), + path.join(bracketDir, 'main.kcl') + ), + ]) + }), + + await page.setBodyDimensions({ width: 1200, height: 500 }) page.on('console', console.log) @@ -93,12 +87,13 @@ test( await expect(successToastMessage).toBeVisible() await expect(exportingToastMessage).not.toBeVisible() + const firstFileFullPath = path.resolve(getPlaywrightDownloadDir(page), exportFileName) await test.step('Check the export size', async () => { await expect .poll( async () => { try { - const outputGltf = await fsp.readFile(exportFileName) + const outputGltf = await fsp.readFile(firstFileFullPath) return outputGltf.byteLength } catch (e) { return 0 @@ -107,9 +102,6 @@ test( { timeout: 15_000 } ) .toBeGreaterThan(300_000) - - // clean up exported file - await fsp.rm(exportFileName) }) }) @@ -170,12 +162,13 @@ test( expect(exportingToastMessage).not.toBeVisible(), ])) + const secondFileFullPath = path.resolve(getPlaywrightDownloadDir(page), exportFileName) await test.step('Check the export size', async () => { await expect .poll( async () => { try { - const outputGltf = await fsp.readFile(exportFileName) + const outputGltf = await fsp.readFile(secondFileFullPath) return outputGltf.byteLength } catch (e) { return 0 @@ -184,13 +177,7 @@ test( { timeout: 15_000 } ) .toBeGreaterThan(100_000) - - // clean up exported file - await fsp.rm(exportFileName) }) - await electronApp.close() }) - - await electronApp.close() } ) diff --git a/e2e/playwright/test-utils.ts b/e2e/playwright/test-utils.ts index 3c8110738..1001f6e79 100644 --- a/e2e/playwright/test-utils.ts +++ b/e2e/playwright/test-utils.ts @@ -693,13 +693,19 @@ export const makeTemplate: ( } } +const PLAYWRIGHT_DOWNLOAD_DIR = 'downloads-during-playwright' + +export const getPlaywrightDownloadDir = (page: Page) => { + return path.resolve( + page.TEST_SETTINGS_FILE_KEY, + PLAYWRIGHT_DOWNLOAD_DIR + ) +} + const moveDownloadedFileTo = async (page: Page, toLocation: string) => { await fsp.mkdir(path.dirname(toLocation), { recursive: true }) - const downloadDir = path.resolve( - page.TEST_SETTINGS_FILE_KEY, - 'downloads-during-playwright' - ) + const downloadDir = getPlaywrightDownloadDir() // Expect there to be at least one file expect