ZDDC/playwright.config.js
ZDDC e7f6334daa chore: retire mdedit tool — markdown editor lives in browse now
mdedit/ is gone. Its functionality moved into browse's preview plugin
(browse/js/preview-markdown.js) — YAML front matter editing, outline,
and on-demand DOCX/HTML/PDF download all happen there. Browse is the
default_tool for working/ + reviewing/ as of the previous commit, so
existing URLs of the form /<project>/working land on browse without
operator action.

Removed:

  • mdedit/ source tree (Toast UI app, CSS, JS, template, build.sh)
  • zddc/internal/apps/embedded/mdedit.html (//go:embed blob)
  • tests/mdedit.spec.js + the "mdedit" project in playwright.config.js
  • mdedit entries in zddc/internal/apps/embed.go (//go:embed, var,
    switch case in EmbeddedBytes)
  • "mdedit" in zddc/internal/zddc/validate.go AppNames + the matching
    error-message app list
  • "mdedit.html" branch in zddc/internal/apps/handler.go MatchAppHTML
  • mdedit case in tests (handler_test.go, validate_test.go,
    zddchandler_test.go) — test fixtures now use browse/classifier
  • mdedit from build (per-tool build.sh loop, tool-list literals,
    composer cards) and shared/build-lib.sh ZDDC_RELEASE_TOOLS
  • mdedit from freshen-channel's tool list and usage banner
  • mdedit-specific paragraphs in AGENTS.md and ARCHITECTURE.md;
    Markdown Editor section in ARCHITECTURE.md rewritten to point at
    browse/js/preview-markdown.js
  • mdedit from CLAUDE.md, README.md, zddc/README.md tool lists

Historical mdedit_v*.html / mdedit_v*.html.sig files in
/srv/zddc/releases/ on the deploy host are immutable history — they
stay where they are. The next ./build release cut will simply not
produce new mdedit_v* artifacts.
2026-05-13 10:34:31 -05:00

113 lines
2.9 KiB
JavaScript

import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './tests',
// tokens.spec.js builds the Go binary on first run via podman + waits
// for the spawned master to listen — both can take longer than the
// default 30s on a cold cache. Other specs are file:// driven and
// unaffected by this bump.
timeout: 60000,
retries: 0,
reporter: [['line'], ['html', { open: 'never' }]],
use: {
// Chromium only -- File System Access API requires it,
// and the ZDDC tools target "any modern Chromium-based browser"
browserName: 'chromium',
screenshot: 'only-on-failure',
trace: 'retain-on-failure',
},
projects: [
{
name: 'archive',
testMatch: 'archive.spec.js',
},
{
name: 'archive-cascade',
testMatch: 'archive-cascade.spec.js',
},
{
name: 'landing',
testMatch: 'landing.spec.js',
},
{
name: 'transmittal',
testMatch: 'transmittal.spec.js',
},
{
name: 'transmittal-init',
testMatch: 'transmittal-init-check.spec.js',
},
{
name: 'transmittal-drag-drop',
testMatch: 'transmittal-drag-drop.spec.js',
},
{
name: 'classifier',
testMatch: 'classifier.spec.js',
},
{
name: 'browse',
testMatch: 'browse.spec.js',
},
{
name: 'zddc-source',
testMatch: 'zddc-source.spec.js',
},
{
name: 'toast',
testMatch: 'toast.spec.js',
},
{
name: 'nav',
testMatch: 'nav.spec.js',
},
{
name: 'logo',
testMatch: 'logo.spec.js',
},
{
name: 'zddc',
testMatch: 'zddc.spec.js',
},
{
name: 'form-safety',
testMatch: 'form-safety.spec.js',
},
{
name: 'tables',
testMatch: 'tables.spec.js',
},
{
name: 'zddc-filter',
testMatch: 'zddc-filter.spec.js',
},
{
name: 'build-label',
testMatch: 'build-label.spec.js',
},
{
name: 'schema',
testMatch: 'schema.spec.js',
},
{
// Server-backed: starts a real zddc-server master via
// tests/lib/server.mjs (which builds the binary on first run
// through the canonical podman/zddc-go:1.24 invocation), drives
// Chromium against http://127.0.0.1:<port>/.tokens, exercises
// create/list/revoke + bearer round-trip + cross-user 404 +
// XSS-guard. The binary build is cached at zddc/dist/zddc-server-
// test and invalidated by a hash of cmd/+internal/+go.{mod,sum}
// so a second run only takes the master-startup time (~1s).
// First run takes ~30s for the build.
//
// The lifecycle is per-spec via beforeAll/afterAll — Playwright's
// top-level webServer hook would fire for every project, including
// the file://-driven tool tests that don't need the server.
name: 'tokens',
testMatch: 'tokens.spec.js',
},
],
});