mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-13 20:12:54 -07:00
Add playlist browser overlay modal (#37)
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import path from 'node:path';
|
||||
import test from 'node:test';
|
||||
|
||||
import { sortPlaylistBrowserDirectoryItems } from './playlist-browser-sort';
|
||||
|
||||
test('sortPlaylistBrowserDirectoryItems prefers parsed season and episode order', () => {
|
||||
const root = '/library/show';
|
||||
const items = sortPlaylistBrowserDirectoryItems([
|
||||
path.join(root, 'Show - S01E10.mkv'),
|
||||
path.join(root, 'Show - S01E02.mkv'),
|
||||
path.join(root, 'Show - S01E01.mkv'),
|
||||
path.join(root, 'Show - Episode 7.mkv'),
|
||||
path.join(root, 'Show - 01x03.mkv'),
|
||||
]);
|
||||
|
||||
assert.deepEqual(
|
||||
items.map((item) => item.basename),
|
||||
[
|
||||
'Show - S01E01.mkv',
|
||||
'Show - S01E02.mkv',
|
||||
'Show - 01x03.mkv',
|
||||
'Show - Episode 7.mkv',
|
||||
'Show - S01E10.mkv',
|
||||
],
|
||||
);
|
||||
assert.deepEqual(
|
||||
items.map((item) => item.episodeLabel),
|
||||
['S1E1', 'S1E2', 'S1E3', 'E7', 'S1E10'],
|
||||
);
|
||||
});
|
||||
|
||||
test('sortPlaylistBrowserDirectoryItems falls back to deterministic natural ordering', () => {
|
||||
const root = '/library/show';
|
||||
const items = sortPlaylistBrowserDirectoryItems([
|
||||
path.join(root, 'Show Part 10.mkv'),
|
||||
path.join(root, 'Show Part 2.mkv'),
|
||||
path.join(root, 'Show Part 1.mkv'),
|
||||
path.join(root, 'Show Special.mkv'),
|
||||
]);
|
||||
|
||||
assert.deepEqual(
|
||||
items.map((item) => item.basename),
|
||||
['Show Part 1.mkv', 'Show Part 2.mkv', 'Show Part 10.mkv', 'Show Special.mkv'],
|
||||
);
|
||||
assert.deepEqual(
|
||||
items.map((item) => item.episodeLabel),
|
||||
[null, null, null, null],
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user