Files
SnowLuma/packages/webui/tests/developer-tools.test.tsx
2026-10-12 15:43:34 +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);
});
});