import { test, expect } from '@playwright/test' import { getUtils, setupElectron, tearDown } from './test-utils' test.afterEach(async ({ page }, testInfo) => { await tearDown(page, testInfo) }) test( 'When the project folder is empty, user can create new project and open it.', { tag: '@electron' }, 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/') page.on('console', console.log) // expect to see text "No Projects found" await expect(page.getByText('No Projects found')).toBeVisible() await page.getByRole('button', { name: 'New project' }).click() await expect(page.getByText('Successfully created')).toBeVisible() await expect(page.getByText('Successfully created')).not.toBeVisible() await expect(page.getByText('project-000')).toBeVisible() await page.getByText('project-000').click() await expect(page.getByTestId('loading')).toBeAttached() await expect(page.getByTestId('loading')).not.toBeAttached({ timeout: 20_000, }) await expect( page.getByRole('button', { name: 'Start Sketch' }) ).toBeEnabled({ timeout: 20_000, }) await electronApp.close() } )