chore(dx/desktop): integrate e2e tests in same project

This commit is contained in:
Elian Doran 2025-09-03 20:08:17 +03:00
parent e71284d887
commit e73724a576
No known key found for this signature in database
9 changed files with 21 additions and 71 deletions

2
.gitignore vendored
View File

@ -37,7 +37,7 @@ vite.config.*.timestamp*
vitest.config.*.timestamp* vitest.config.*.timestamp*
test-output test-output
apps/*/data apps/*/data*
apps/*/out apps/*/out
upload upload

View File

@ -1,3 +0,0 @@
TRILIUM_INTEGRATION_TEST=memory-no-store
TRILIUM_PORT=8082
TRILIUM_DATA_DIR=data

View File

@ -1,15 +0,0 @@
import playwright from "eslint-plugin-playwright";
import baseConfig from "../../eslint.config.mjs";
export default [
playwright.configs["flat/recommended"],
...baseConfig,
{
files: [
"**/*.ts",
"**/*.js"
],
// Override or add rules here
rules: {}
}
];

View File

@ -1,5 +0,0 @@
{
"name": "@triliumnext/desktop-e2e",
"version": "0.0.1",
"private": true
}

View File

@ -1,25 +0,0 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"allowJs": true,
"outDir": "out-tsc/playwright",
"sourceMap": false
},
"include": [
"**/*.ts",
"**/*.js",
"playwright.config.ts",
"src/**/*.spec.ts",
"src/**/*.spec.js",
"src/**/*.test.ts",
"src/**/*.test.js",
"src/**/*.d.ts"
],
"exclude": [
"out-tsc",
"test-output",
"eslint.config.js",
"eslint.config.mjs",
"eslint.config.cjs"
]
}

View File

@ -60,7 +60,7 @@ test('First setup', async () => {
// Verify the shared link is valid // Verify the shared link is valid
const requestContext = await request.newContext(); const requestContext = await request.newContext();
const response = await requestContext.get(linkUrl!); const response = await requestContext.get(linkUrl!);
expect(response).toBeOK(); await expect(response).toBeOK();
await mainWindow.waitForTimeout(5000); await mainWindow.waitForTimeout(5000);
}); });

View File

@ -4,6 +4,22 @@
"description": "Build your personal knowledge base with Trilium Notes", "description": "Build your personal knowledge base with Trilium Notes",
"private": true, "private": true,
"main": "src/main.ts", "main": "src/main.ts",
"license": "AGPL-3.0-only",
"author": {
"name": "Trilium Notes Team",
"email": "contact@eliandoran.me",
"url": "https://github.com/TriliumNext/Notes"
},
"scripts": {
"dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx ../../scripts/electron-start.mts src/main.ts",
"start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts",
"build": "tsx scripts/build.ts",
"start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 ELECTRON_IS_DEV=0 electron dist",
"electron-forge:make": "pnpm build && cross-env electron-forge make dist",
"electron-forge:package": "pnpm build && electron-forge package dist",
"electron-forge:start": "pnpm build && electron-forge start dist",
"e2e": "pnpm build && cross-env TRILIUM_INTEGRATION_TEST=memory-no-store TRILIUM_PORT=8082 TRILIUM_DATA_DIR=data-e2e ELECTRON_IS_DEV=0 playwright test"
},
"dependencies": { "dependencies": {
"@electron/remote": "2.1.3", "@electron/remote": "2.1.3",
"better-sqlite3": "^12.0.0", "better-sqlite3": "^12.0.0",
@ -28,20 +44,5 @@
"@electron-forge/maker-zip": "7.8.3", "@electron-forge/maker-zip": "7.8.3",
"@electron-forge/plugin-auto-unpack-natives": "7.8.3", "@electron-forge/plugin-auto-unpack-natives": "7.8.3",
"prebuild-install": "^7.1.1" "prebuild-install": "^7.1.1"
}, }
"scripts": {
"dev": "cross-env TRILIUM_PORT=37741 TRILIUM_DATA_DIR=data tsx ../../scripts/electron-start.mts src/main.ts",
"start-no-dir": "cross-env TRILIUM_PORT=37743 tsx ../../scripts/electron-start.mts src/main.ts",
"build": "tsx scripts/build.ts",
"start-prod": "pnpm build && cross-env TRILIUM_DATA_DIR=data TRILIUM_PORT=37841 electron dist",
"electron-forge:make": "pnpm build && cross-env electron-forge make dist",
"electron-forge:package": "pnpm build && electron-forge package dist",
"electron-forge:start": "pnpm build && electron-forge start dist"
},
"license": "AGPL-3.0-only",
"author": {
"name": "Trilium Notes Team",
"email": "contact@eliandoran.me",
"url": "https://github.com/TriliumNext/Notes"
}
} }

View File

@ -1,10 +1,5 @@
import { defineConfig, devices } from '@playwright/test'; import { defineConfig, devices } from '@playwright/test';
require('dotenv').config({
path: __dirname + "/" + ".env"
});
/** /**
* See https://playwright.dev/docs/test-configuration. * See https://playwright.dev/docs/test-configuration.
*/ */
@ -14,6 +9,8 @@ export default defineConfig({
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry', trace: 'on-first-retry',
}, },
testDir: "e2e",
outputDir: "test-output",
projects: [ projects: [
{ {
name: "chromium", name: "chromium",