mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-12 17:22:38 +02:00
test(web): move dashboard tracer-bullet into smoke/ and harden Playwright config
This commit is contained in:
parent
87dd5af259
commit
a2976ee0b6
3 changed files with 25 additions and 24 deletions
|
|
@ -19,7 +19,7 @@ const baseURL = process.env.PLAYWRIGHT_BASE_URL || `http://localhost:${PORT}`;
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
testDir: "./tests",
|
testDir: "./tests",
|
||||||
timeout: 30_000,
|
timeout: 30_000,
|
||||||
expect: { timeout: 5_000 },
|
expect: { timeout: 15_000 },
|
||||||
fullyParallel: true,
|
fullyParallel: true,
|
||||||
forbidOnly: !!process.env.CI,
|
forbidOnly: !!process.env.CI,
|
||||||
retries: process.env.CI ? 2 : 0,
|
retries: process.env.CI ? 2 : 0,
|
||||||
|
|
@ -53,10 +53,11 @@ export default defineConfig({
|
||||||
webServer: process.env.PLAYWRIGHT_NO_WEB_SERVER
|
webServer: process.env.PLAYWRIGHT_NO_WEB_SERVER
|
||||||
? undefined
|
? undefined
|
||||||
: {
|
: {
|
||||||
command: "pnpm dev",
|
// Pin to webpack dev (Turbopack has caused stale-lock panics in E2E).
|
||||||
|
command: "pnpm exec next dev",
|
||||||
url: `http://localhost:${PORT}`,
|
url: `http://localhost:${PORT}`,
|
||||||
reuseExistingServer: !process.env.CI,
|
reuseExistingServer: !process.env.CI,
|
||||||
timeout: 120_000,
|
timeout: 180_000,
|
||||||
env: {
|
env: {
|
||||||
NEXT_PUBLIC_FASTAPI_BACKEND_URL: `http://localhost:${BACKEND_PORT}`,
|
NEXT_PUBLIC_FASTAPI_BACKEND_URL: `http://localhost:${BACKEND_PORT}`,
|
||||||
NEXT_PUBLIC_FASTAPI_BACKEND_AUTH_TYPE: "LOCAL",
|
NEXT_PUBLIC_FASTAPI_BACKEND_AUTH_TYPE: "LOCAL",
|
||||||
|
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
import { expect, test } from "@playwright/test";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tracer-bullet test: proves the entire E2E pipeline works end-to-end.
|
|
||||||
*
|
|
||||||
* Verifies:
|
|
||||||
* - Web server is reachable
|
|
||||||
* - Auth setup ran successfully (storageState contains valid token)
|
|
||||||
* - Dashboard route renders for an authenticated user
|
|
||||||
*
|
|
||||||
* Keep this test minimal. Product-specific behaviour belongs in dedicated
|
|
||||||
* spec files (new-chat, search-spaces, editor-panel, etc.).
|
|
||||||
*/
|
|
||||||
test.describe("Dashboard", () => {
|
|
||||||
test("loads dashboard with sidebar navigation for authenticated user", async ({ page }) => {
|
|
||||||
await page.goto("/dashboard");
|
|
||||||
|
|
||||||
await expect(page).toHaveURL(/\/dashboard/);
|
|
||||||
await expect(page.getByRole("navigation").first()).toBeVisible();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
21
surfsense_web/tests/smoke/dashboard.spec.ts
Normal file
21
surfsense_web/tests/smoke/dashboard.spec.ts
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
import { expect, test } from "@playwright/test";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tracer-bullet smoke test: proves the entire E2E pipeline is wired up.
|
||||||
|
*
|
||||||
|
* Verifies:
|
||||||
|
* - Web server is reachable
|
||||||
|
* - tests/auth.setup.ts ran and stored a valid bearer token
|
||||||
|
* - Dashboard route renders for an authenticated user
|
||||||
|
*
|
||||||
|
* Keep minimal. Connector- or feature-specific behaviour belongs under
|
||||||
|
* tests/connectors/ or tests/<feature>/.
|
||||||
|
*/
|
||||||
|
test.describe("Smoke", () => {
|
||||||
|
test("dashboard loads for authenticated user", async ({ page }) => {
|
||||||
|
await page.goto("/dashboard");
|
||||||
|
|
||||||
|
// Sidebar is <aside> (role=complementary); its visibility implies redirect + auth fetch.
|
||||||
|
await expect(page.getByRole("complementary").first()).toBeVisible({ timeout: 60_000 });
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue