diff --git a/e2e/playwright/projects.spec.ts b/e2e/playwright/projects.spec.ts index 21c15a940..eeace3ce2 100644 --- a/e2e/playwright/projects.spec.ts +++ b/e2e/playwright/projects.spec.ts @@ -8,9 +8,12 @@ test.afterEach(async ({ page }, testInfo) => { test( 'When the project folder is empty, user can create new project and open it.', { tag: '@electron' }, - async ({ page: _ }, testInfo) => { + async ({ browserName }, testInfo) => { + test.skip( + browserName === 'webkit', + 'Skip on Safari because `window.tearDown` does not work' + ) const { electronApp, page } = await setupElectron({ testInfo }) - const u = await getUtils(page) await page.goto('http://localhost:3000/') @@ -39,31 +42,6 @@ test( timeout: 20_000, }) - await page.locator('.cm-content') - .fill(`const sketch001 = startSketchOn('XZ') - |> startProfileAt([-87.4, 282.92], %) - |> line([324.07, 27.199], %, $seg01) - |> line([118.328, -291.754], %) - |> line([-180.04, -202.08], %) - |> lineTo([profileStartX(%), profileStartY(%)], %) - |> close(%) -const extrude001 = extrude(200, sketch001)`) - - const pointOnModel = { x: 660, y: 250 } - - // check the model loaded by checking it's grey - await expect - .poll(() => u.getGreatestPixDiff(pointOnModel, [132, 132, 132]), { - timeout: 10_000, - }) - .toBeLessThan(10) - - await page.mouse.click(pointOnModel.x, pointOnModel.y) - // check user can interact with model by checking it turns yellow - await expect - .poll(() => u.getGreatestPixDiff(pointOnModel, [176, 180, 132])) - .toBeLessThan(10) - await electronApp.close() } ) diff --git a/e2e/playwright/test-utils.ts b/e2e/playwright/test-utils.ts index 89301cbad..4d2b36ba6 100644 --- a/e2e/playwright/test-utils.ts +++ b/e2e/playwright/test-utils.ts @@ -625,7 +625,13 @@ export async function setup( }) await context.addInitScript( - async ({ token, settingsKey, settings, appSettingsFileKey, appSettingsFileContent }) => { + async ({ + token, + settingsKey, + settings, + appSettingsFileKey, + appSettingsFileContent, + }) => { localStorage.setItem('TOKEN_PERSIST_KEY', token) localStorage.setItem('persistCode', ``) localStorage.setItem(settingsKey, settings) @@ -635,7 +641,8 @@ export async function setup( { token: secrets.token, appSettingsFileKey: TEST_SETTINGS_FILE_KEY, - appSettingsFileContent: overrideDirectory || TEST_SETTINGS.app.projectDirectory, + appSettingsFileContent: + overrideDirectory || TEST_SETTINGS.app.projectDirectory, settingsKey: TEST_SETTINGS_KEY, settings: TOML.stringify({ ...TEST_SETTINGS, @@ -651,11 +658,7 @@ export async function setup( await page.emulateMedia({ reducedMotion: 'reduce' }) } -export async function setupElectron({ - testInfo, -}: { - testInfo: TestInfo -}) { +export async function setupElectron({ testInfo }: { testInfo: TestInfo }) { // create or otherwise clear the folder const projectDirName = testInfo.outputPath('electron-test-projects-dir') try { @@ -691,4 +694,4 @@ export async function setupElectron({ await setup(context, page, projectDirName) return { electronApp, page } -} \ No newline at end of file +} diff --git a/src/lib/desktop.ts b/src/lib/desktop.ts index ba18c88c8..e3229921a 100644 --- a/src/lib/desktop.ts +++ b/src/lib/desktop.ts @@ -374,12 +374,12 @@ export async function writeProjectSettingsFile( const getAppSettingsFilePath = async () => { const isPlaywright = window.localStorage.getItem('playwright') === 'true' - const testSettingsPath = window.localStorage.getItem(TEST_SETTINGS_FILE_KEY) ?? '' + const testSettingsPath = + window.localStorage.getItem(TEST_SETTINGS_FILE_KEY) ?? '' const appConfig = await window.electron.getPath('appData') - const fullPath = isPlaywright ? testSettingsPath : window.electron.path.join( - appConfig, - window.electron.packageJson.name - ) + const fullPath = isPlaywright + ? testSettingsPath + : window.electron.path.join(appConfig, window.electron.packageJson.name) try { await window.electron.stat(fullPath) } catch (e) {