Files
lan-play/web/js/preferences.test.js
T
Ultradesu eb0d4fb1c5
Build and Publish / Build and Publish Docker Image (push) Successful in 10m8s
Init
2026-08-05 12:32:52 +01:00

37 lines
1.3 KiB
JavaScript

const assert = require('node:assert/strict');
const test = require('node:test');
const values = new Map();
global.window = global;
global.localStorage = {
getItem: (key) => values.get(key) || null,
setItem: (key, value) => values.set(key, value)
};
require('./preferences.js');
test('restores a matching track for the next file in the same folder', () => {
const firstEpisode = 'Anime/Show/episode-01.mkv';
const nextEpisode = 'Anime/Show/episode-02.mkv';
const tracks = [{ lang: 'en' }, { lang: 'ja' }];
LanPlayPreferences.remember(firstEpisode, 'audio', tracks[1], 1);
assert.equal(LanPlayPreferences.find(nextEpisode, 'audio', tracks), tracks[1]);
});
test('does not apply a profile from another folder', () => {
const tracks = [{ lang: 'ja' }];
assert.equal(LanPlayPreferences.find('Anime/Other/episode-01.mkv', 'audio', tracks), undefined);
});
test('falls back to the player default when the saved track is unavailable', () => {
const tracks = [{ lang: 'en' }];
assert.equal(LanPlayPreferences.find('Anime/Show/episode-03.mkv', 'audio', tracks), undefined);
});
test('remembers disabled subtitles for the release folder', () => {
LanPlayPreferences.remember('Series/Season/episode-01.mkv', 'subtitle', null, -1);
assert.equal(
LanPlayPreferences.find('Series/Season/episode-02.mkv', 'subtitle', [{ language: 'en' }]),
null
);
});