Working window.electron.getPath

This commit is contained in:
Frank Noirot
2024-08-13 20:56:18 +02:00
parent 9ab64edf7d
commit 3c4ab65729
5 changed files with 21 additions and 21 deletions

View File

@ -38,9 +38,11 @@ test('Electron setup', { tag: '@electron' }, async () => {
}, },
{ {
settingsKey: TEST_SETTINGS_KEY, settingsKey: TEST_SETTINGS_KEY,
settings: TOML.stringify({ settings: { settings: TOML.stringify({
app: { projectDirectory: fullPath }, settings: {
} }), app: { projectDirectory: fullPath },
},
}),
} }
) )
}) })

View File

@ -1,9 +1,7 @@
import { _electron as electron, test, expect } from '@playwright/test' import { _electron as electron, test, expect } from '@playwright/test'
import { getUtils, setup, tearDown } from './test-utils' import { getUtils, setup, tearDown } from './test-utils'
import fs from 'fs/promises' import fs from 'fs/promises'
import { secrets } from './secrets'
import { join } from 'path' import { join } from 'path'
import { tomlStringify } from 'lang/wasm'
test.afterEach(async ({ page }, testInfo) => { test.afterEach(async ({ page }, testInfo) => {
await tearDown(page, testInfo) await tearDown(page, testInfo)
@ -16,7 +14,7 @@ test(
// create or otherwise clear the folder ./electron-test-projects-dir // create or otherwise clear the folder ./electron-test-projects-dir
const settingsFileName = `./${testInfo.title const settingsFileName = `./${testInfo.title
.replace(/\s/gi, '-') .replace(/\s/gi, '-')
.replace(/\W/gi, '')}` .replace(/![\w-]/gi, '')}`
const projectDirName = settingsFileName + '-dir' const projectDirName = settingsFileName + '-dir'
try { try {
await fs.rm(projectDirName, { recursive: true }) await fs.rm(projectDirName, { recursive: true })
@ -35,21 +33,15 @@ test(
const context = electronApp.context() const context = electronApp.context()
const page = await electronApp.firstWindow() const page = await electronApp.firstWindow()
await page.goto('http://localhost:3000/')
const electronTempDirectory = await page.evaluate(async () => { const electronTempDirectory = await page.evaluate(async () => {
return await window.electron.getPath( return await window.electron.getPath('temp')
'temp'
)
}) })
const tempSettingsFilePath = join(electronTempDirectory, settingsFileName) const tempSettingsFilePath = join(electronTempDirectory, settingsFileName)
const settingsOverrides = tomlStringify({ const settingsOverrides = `[settings.project]
app: { directory = "/Users/frankjohnson/Documents/zoo-modeling-app-projects-2"
projectDirectory: fullProjectPath, `
},
})
if (settingsOverrides instanceof Error) {
throw settingsOverrides
}
await fs.writeFile(tempSettingsFilePath + '.toml', settingsOverrides) await fs.writeFile(tempSettingsFilePath + '.toml', settingsOverrides)
console.log('from within test setup', { console.log('from within test setup', {

View File

@ -609,7 +609,11 @@ export async function tearDown(page: Page, testInfo: TestInfo) {
// settingsOverrides may need to be augmented to take more generic items, // settingsOverrides may need to be augmented to take more generic items,
// but we'll be strict for now // but we'll be strict for now
export async function setup(context: BrowserContext, page: Page, overrideDirectory?: string) { export async function setup(
context: BrowserContext,
page: Page,
overrideDirectory?: string
) {
// wait for Vite preview server to be up // wait for Vite preview server to be up
await waitOn({ await waitOn({
resources: ['tcp:3000'], resources: ['tcp:3000'],
@ -630,7 +634,8 @@ export async function setup(context: BrowserContext, page: Page, overrideDirecto
...TEST_SETTINGS, ...TEST_SETTINGS,
app: { app: {
...TEST_SETTINGS.app, ...TEST_SETTINGS.app,
projectDirectory: overrideDirectory || TEST_SETTINGS.app.projectDirectory, projectDirectory:
overrideDirectory || TEST_SETTINGS.app.projectDirectory,
}, },
}), }),
} }

View File

@ -377,7 +377,8 @@ export async function writeProjectSettingsFile(
const getAppSettingsFilePath = async () => { const getAppSettingsFilePath = async () => {
const isPlaywright = window.localStorage.getItem('playwright') === 'true' const isPlaywright = window.localStorage.getItem('playwright') === 'true'
const testDirectoryName = window.localStorage.getItem(TEST_SETTINGS_FILE_KEY) ?? '' const testDirectoryName =
window.localStorage.getItem(TEST_SETTINGS_FILE_KEY) ?? ''
const appConfig = await window.electron.getPath( const appConfig = await window.electron.getPath(
isPlaywright ? 'temp' : 'appData' isPlaywright ? 'temp' : 'appData'
) )