mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-14 04:01:35 +00:00
One Vite build emits dist/index.html and dist/preview.html sharing every chunk; the only difference is one prepended bootstrap entry whose module connects the worker host, so the page from the stock entry onward is the served startup chain verbatim. The dist moves to a relative base so the preview mounts under any static directory, and the served form anchors deep SPA-fallback paths with a rendered <base href="/">. The preview-boot e2e serves the real built pages, packs the VFS image when absent, and holds the boot line's lowering contract, the interactive hero, and a clean page-error channel in headless Chromium.
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { readFile } from 'node:fs/promises'
|
|
import { fileURLToPath } from 'node:url'
|
|
import { join } from 'node:path'
|
|
import { expect, it } from 'vitest'
|
|
|
|
const DIST_ROOT = fileURLToPath(new URL('../dist', import.meta.url))
|
|
|
|
it('ships install metadata with the built web application', async () => {
|
|
const index = await readFile(join(DIST_ROOT, 'index.html'), 'utf8')
|
|
expect(index).toContain('<link rel="manifest" href="./manifest.webmanifest" />')
|
|
|
|
const manifest: unknown = JSON.parse(await readFile(join(DIST_ROOT, 'manifest.webmanifest'), 'utf8'))
|
|
expect(manifest).toEqual({
|
|
id: '/',
|
|
name: 'DeepSeek Harness',
|
|
short_name: 'DSH',
|
|
start_url: '/',
|
|
scope: '/',
|
|
display: 'fullscreen',
|
|
icons: [{
|
|
src: '/favicon.svg',
|
|
sizes: 'any',
|
|
type: 'image/svg+xml',
|
|
purpose: 'any',
|
|
}],
|
|
})
|
|
})
|
|
|
|
it('ships a favicon that switches to a light mark under dark color scheme', async () => {
|
|
const favicon = await readFile(join(DIST_ROOT, 'favicon.svg'), 'utf8')
|
|
// The light fill must live inside the dark-scheme media query, so the icon
|
|
// stays black in light mode and only turns white under a dark scheme.
|
|
expect(favicon).toMatch(/@media \(prefers-color-scheme: dark\)\s*{\s*path\s*{[^}]*fill:\s*#fff/i)
|
|
expect(favicon).toContain('fill="#000"')
|
|
})
|