diff --git a/e2e/playwright/projects.spec.ts b/e2e/playwright/projects.spec.ts index d1b04101c..33ca90e2f 100644 --- a/e2e/playwright/projects.spec.ts +++ b/e2e/playwright/projects.spec.ts @@ -7,7 +7,7 @@ test.afterEach(async ({ page }, testInfo) => { }) test( - 'CRUD projects', + 'Rename and delete projects, also spam arrow keys when renaming', { tag: '@electron' }, async ({ browserName }, testInfo) => { const { electronApp, page } = await setupElectron({ diff --git a/e2e/playwright/test-utils.ts b/e2e/playwright/test-utils.ts index 053f7e276..3f9908f07 100644 --- a/e2e/playwright/test-utils.ts +++ b/e2e/playwright/test-utils.ts @@ -640,20 +640,20 @@ export async function setup( token, settingsKey, settings, - appSettingsFileKey, - appSettingsFileContent, + // appSettingsFileKey, + // appSettingsFileContent, }) => { localStorage.setItem('TOKEN_PERSIST_KEY', token) localStorage.setItem('persistCode', ``) localStorage.setItem(settingsKey, settings) - localStorage.setItem(appSettingsFileKey, appSettingsFileContent) + // localStorage.setItem(appSettingsFileKey, appSettingsFileContent) localStorage.setItem('playwright', 'true') }, { token: secrets.token, - appSettingsFileKey: TEST_SETTINGS_FILE_KEY, - appSettingsFileContent: - overrideDirectory || TEST_SETTINGS.app.projectDirectory, + // appSettingsFileKey: TEST_SETTINGS_FILE_KEY, + // appSettingsFileContent: + // overrideDirectory || TEST_SETTINGS.app.projectDirectory, settingsKey: TEST_SETTINGS_KEY, settings: TOML.stringify({ ...TEST_SETTINGS, @@ -672,9 +672,11 @@ export async function setup( export async function setupElectron({ testInfo, folderSetupFn, + overrideDirectory, }: { testInfo: TestInfo folderSetupFn?: (projectDirName: string) => Promise + overrideDirectory?: string }) { // create or otherwise clear the folder const projectDirName = testInfo.outputPath('electron-test-projects-dir') @@ -688,7 +690,14 @@ export async function setupElectron({ await fsp.mkdir(projectDirName) - const electronApp = await electron.launch({ args: ['.', '--no-sandbox'] }) + const electronApp = await electron.launch({ + args: ['.', '--no-sandbox'], + env: { + ...process.env, + TEST_SETTINGS_FILE_KEY: + overrideDirectory || TEST_SETTINGS.app.projectDirectory, + }, + }) const context = electronApp.context() const page = await electronApp.firstWindow() context.on('console', console.log) diff --git a/src/lang/wasm.ts b/src/lang/wasm.ts index 9a5d25ba5..fbdcd18f9 100644 --- a/src/lang/wasm.ts +++ b/src/lang/wasm.ts @@ -579,7 +579,7 @@ export function defaultAppSettings(): Partial { export function parseAppSettings(toml: string): Partial { const parsed = parse_app_settings(toml) - console.log('within wasm.ts, parsed app settings', parsed) + // console.log('within wasm.ts, parsed app settings', parsed) return configurationToSettingsPayload(parsed) } diff --git a/src/lib/desktop.ts b/src/lib/desktop.ts index 12a7cc44e..9b16e40d5 100644 --- a/src/lib/desktop.ts +++ b/src/lib/desktop.ts @@ -443,7 +443,18 @@ export const readAppSettingsFile = async () => { } const configToml = await window.electron.readFile(settingsPath) const configObj = parseAppSettings(configToml) - const overrideJSON = localStorage.getItem('APP_SETTINGS_OVERRIDE') + const overrideJSON = window?.env?.[TEST_SETTINGS_FILE_KEY] + console.log( + 'overrideJSON', + overrideJSON, + window.electron, + window.electron.process?.env, + window.electron.process?.env?.TEST_SETTINGS_FILE_KEY, + window.electron.process?.env?.TEST_SETTINGS_FILE_KEY?.(), + window.electron.process?.env?.BASE_URL?.() + // window.electron.process?.env?.BASE_URL + ) + // const overrideJSON = localStorage.getItem('APP_SETTINGS_OVERRIDE') if (overrideJSON) { try { const override = JSON.parse(overrideJSON) diff --git a/src/machines/authMachine.ts b/src/machines/authMachine.ts index 2c2c33fb4..770e1e7d5 100644 --- a/src/machines/authMachine.ts +++ b/src/machines/authMachine.ts @@ -43,7 +43,10 @@ export type Events = const COOKIE_NAME = '__Secure-next-auth.session-token' export const TOKEN_PERSIST_KEY = 'TOKEN_PERSIST_KEY' const persistedToken = - getCookie(COOKIE_NAME) || localStorage?.getItem(TOKEN_PERSIST_KEY) || '' + VITE_KC_DEV_TOKEN || + getCookie(COOKIE_NAME) || + localStorage?.getItem(TOKEN_PERSIST_KEY) || + '' export const authMachine = createMachine( { @@ -59,6 +62,7 @@ export const authMachine = createMachine( { target: 'loggedIn', actions: () => { + console.log('login and shit') return assign((context, event) => ({ user: event.data.user, token: event.data.token || context.token, @@ -70,6 +74,7 @@ export const authMachine = createMachine( { target: 'loggedOut', actions: (args) => { + console.log('logout') return assign({ user: () => undefined, }) @@ -118,12 +123,14 @@ export const authMachine = createMachine( ) async function getUser(context: UserContext) { - const token = - context.token && context.token !== '' - ? context.token - : getCookie(COOKIE_NAME) || - localStorage?.getItem(TOKEN_PERSIST_KEY) || - VITE_KC_DEV_TOKEN + console.log('getUser context', VITE_KC_DEV_TOKEN, context) + const token = VITE_KC_DEV_TOKEN + ? VITE_KC_DEV_TOKEN + : context.token && context.token !== '' + ? context.token + : VITE_KC_DEV_TOKEN || + getCookie(COOKIE_NAME) || + localStorage?.getItem(TOKEN_PERSIST_KEY) const url = withBaseURL('/user') const headers: { [key: string]: string } = { 'Content-Type': 'application/json', @@ -138,6 +145,10 @@ async function getUser(context: UserContext) { LOCAL_USER.image = '' } + console.log('skip', { + user: LOCAL_USER, + token, + }) return { user: LOCAL_USER, token, diff --git a/src/preload.ts b/src/preload.ts index fc9d53e4e..2ce5f78d9 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -1,10 +1,12 @@ import { ipcRenderer, contextBridge } from 'electron' import path from 'path' import fs from 'node:fs/promises' -import packageJson from '../../package.json' +import packageJson from '../package.json' import { components } from 'lib/machine-api' import { MachinesListing } from 'lib/machineManager' +console.log('preload.ts loaded', packageJson) + const open = (args: any) => ipcRenderer.invoke('dialog.showOpenDialog', args) const save = (args: any) => ipcRenderer.invoke('dialog.showSaveDialog', args) const openExternal = (url: any) => ipcRenderer.invoke('shell.openExternal', url) @@ -81,7 +83,11 @@ contextBridge.exposeInMainWorld('electron', { process: { // Setter/getter has to be created because // these are read-only over the boundary. - env: Object.assign({}, exposeProcessEnv('BASE_URL')), + env: Object.assign( + {}, + exposeProcessEnv('BASE_URL'), + exposeProcessEnv('TEST_SETTINGS_FILE_KEY') + ), }, kittycad, listMachines,