Working window.electron.getPath
This commit is contained in:
@ -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 },
|
||||||
|
},
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -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', {
|
||||||
|
@ -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,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
@ -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'
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user