mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-20 03:16:46 -07:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { renderToStaticMarkup } from 'react-dom/server';
|
|
import { TabBar } from '../components/layout/TabBar';
|
|
import { EpisodeList } from '../components/anime/EpisodeList';
|
|
|
|
test('TabBar renders Library instead of Anime for the media library tab', () => {
|
|
const markup = renderToStaticMarkup(<TabBar activeTab="overview" onTabChange={() => {}} />);
|
|
|
|
assert.doesNotMatch(markup, />Anime</);
|
|
assert.match(markup, />Overview</);
|
|
assert.match(markup, />Library</);
|
|
});
|
|
|
|
test('EpisodeList renders explicit episode detail button alongside quick peek row', () => {
|
|
const markup = renderToStaticMarkup(
|
|
<EpisodeList
|
|
episodes={[
|
|
{
|
|
videoId: 9,
|
|
episode: 9,
|
|
season: 1,
|
|
durationMs: 1,
|
|
endedMediaMs: null,
|
|
watched: 0,
|
|
canonicalTitle: 'Episode 9',
|
|
totalSessions: 1,
|
|
totalActiveMs: 1,
|
|
totalCards: 1,
|
|
totalTokensSeen: 350,
|
|
totalYomitanLookupCount: 7,
|
|
lastWatchedMs: 0,
|
|
},
|
|
]}
|
|
onOpenDetail={() => {}}
|
|
/>,
|
|
);
|
|
|
|
assert.match(markup, />Details</);
|
|
assert.match(markup, /Episode 9/);
|
|
});
|