源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import { expect, test } from "vitest";
|
||||
import { createAndSelectWorkspace, evalIn, waitFor } from "@openwork/behaviors";
|
||||
import { createVisualEvidence, screenshot, validate } from "@openwork/test-evidence";
|
||||
import { desktop } from "@openwork/hosts";
|
||||
|
||||
const e2eTestsEnabled = process.env.OPENWORK_EVAL_E2E_TESTS === "1";
|
||||
const title = e2eTestsEnabled
|
||||
? "app boots with a control route and meaningful visible content"
|
||||
: "app smoke skipped: set OPENWORK_EVAL_E2E_TESTS=1 to opt in";
|
||||
|
||||
test.skipIf(!e2eTestsEnabled)(title, async () => {
|
||||
await using app = await desktop({ name: "app-smoke" });
|
||||
await using visualEvidence = createVisualEvidence("app-smoke");
|
||||
// A fresh, small directory that exists on whatever host runs the app.
|
||||
// NOT process.cwd(): that is the DRIVER's filesystem, which does not exist
|
||||
// when the app runs in a sandbox. NOT the repo root either: opening the whole
|
||||
// monorepo makes the engine scan node_modules and blocks the renderer past
|
||||
// 240s. createLocalWorkspace creates the folder, so it need not pre-exist.
|
||||
const workspace = await createAndSelectWorkspace(app, { path: `/tmp/openwork-app-smoke-${Date.now()}` });
|
||||
expect(workspace.workspaceId).toBeTruthy();
|
||||
const route = await evalIn(app, "window.__openworkControl.snapshot().route");
|
||||
expect(route).toBeTruthy();
|
||||
await waitFor(app, "document.body.innerText.trim().length > 40", { timeoutMs: 30_000, label: "rendered body text" });
|
||||
const shot = await screenshot(app);
|
||||
const seen = await validate(shot, [
|
||||
"A ready OpenWork workspace composer with meaningful visible content is on screen",
|
||||
"No generic error or 'Something went wrong' crash message is visible",
|
||||
]);
|
||||
expect(seen.ok, seen.why).toBe(true);
|
||||
await visualEvidence.recordScreenshot(shot, seen);
|
||||
});
|
||||
Reference in New Issue
Block a user