messy env stuff

This commit is contained in:
Kurt Hutten Irev-Dev
2024-08-15 11:43:55 +10:00
parent 84521b28f3
commit c3b0c64d6c
6 changed files with 56 additions and 19 deletions

View File

@ -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({

View File

@ -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<void>
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)

View File

@ -579,7 +579,7 @@ export function defaultAppSettings(): Partial<SaveSettingsPayload> {
export function parseAppSettings(toml: string): Partial<SaveSettingsPayload> {
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)
}

View File

@ -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)

View File

@ -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<UserContext, Events>(
{
@ -59,6 +62,7 @@ export const authMachine = createMachine<UserContext, Events>(
{
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<UserContext, Events>(
{
target: 'loggedOut',
actions: (args) => {
console.log('logout')
return assign({
user: () => undefined,
})
@ -118,12 +123,14 @@ export const authMachine = createMachine<UserContext, Events>(
)
async function getUser(context: UserContext) {
const token =
context.token && context.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
: getCookie(COOKIE_NAME) ||
localStorage?.getItem(TOKEN_PERSIST_KEY) ||
VITE_KC_DEV_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,

View File

@ -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,