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