Files
SnowLuma/packages/webui/tests/developer-tools.test.tsx
DrSmoothl 958d17ecc0 feat(webui): add developer settings tools
Expose onboarding replay and page crash testing from a dedicated settings page.\n\nKeep replay actions isolated from persisted consent and password state.
2026-08-01 00:40:44 +08:00

30 lines
1.1 KiB
TypeScript

import { renderToStaticMarkup } from 'react-dom/server';
import { describe, expect, it } from 'vitest';
import {
DEVELOPER_CRASH_MESSAGE,
DeveloperCrashProbe,
developerCrashReducer,
} from '../src/components/settings/developer-tools';
import { ErrorPage } from '../src/components/pages/status-screens';
import { SETTINGS_TABS } from '../src/router';
describe('developer settings tools', () => {
it('keeps the developer page in the public settings route contract', () => {
expect(SETTINGS_TABS).toContain('developer');
});
it('promotes a confirmed crash into the route error screen', () => {
const requested = developerCrashReducer(false, 'confirm');
expect(() => renderToStaticMarkup(
<DeveloperCrashProbe requested={requested} />,
)).toThrowError(DEVELOPER_CRASH_MESSAGE);
const html = renderToStaticMarkup(
<ErrorPage error={new Error(DEVELOPER_CRASH_MESSAGE)} reset={() => undefined} />,
);
expect(html).toContain('页面出错了');
expect(html).toContain('重试');
expect(html).toContain(DEVELOPER_CRASH_MESSAGE);
});
});