mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-07-26 12:08:15 +00:00
83 lines
3.0 KiB
JavaScript
83 lines
3.0 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import {
|
|
TITLE_PRIVACY_MODES,
|
|
applyTitlePrivacyToPayload,
|
|
normalizeSendTabTitle,
|
|
normalizeTabTitle,
|
|
normalizeTitlePrivacyMode,
|
|
sanitizeSharedTitle,
|
|
sanitizeTabTitle
|
|
} from '../extension/title-privacy.js';
|
|
|
|
assert.equal(normalizeTitlePrivacyMode(undefined), TITLE_PRIVACY_MODES.FULL);
|
|
assert.equal(normalizeTitlePrivacyMode('unknown'), TITLE_PRIVACY_MODES.FULL);
|
|
assert.equal(normalizeTitlePrivacyMode(TITLE_PRIVACY_MODES.HIDDEN), TITLE_PRIVACY_MODES.HIDDEN);
|
|
assert.equal(normalizeSendTabTitle(undefined, TITLE_PRIVACY_MODES.FULL), true);
|
|
assert.equal(normalizeSendTabTitle(undefined, TITLE_PRIVACY_MODES.EPISODE), false);
|
|
assert.equal(normalizeSendTabTitle(true, TITLE_PRIVACY_MODES.HIDDEN), true);
|
|
assert.equal(normalizeSendTabTitle(false, TITLE_PRIVACY_MODES.FULL), false);
|
|
assert.equal(normalizeTabTitle('(12) Testvideo - YouTube'), 'Testvideo - YouTube');
|
|
assert.equal(normalizeTabTitle('[7] Testvideo - YouTube'), 'Testvideo - YouTube');
|
|
assert.equal(normalizeTabTitle('(500) Days of Summer'), '(500) Days of Summer');
|
|
assert.equal(normalizeTabTitle(' '), null);
|
|
|
|
assert.equal(sanitizeTabTitle('Private Tab', true), 'Private Tab');
|
|
assert.equal(sanitizeTabTitle('(12) Private Tab', true), 'Private Tab');
|
|
assert.equal(sanitizeTabTitle('Private Tab', false), null);
|
|
assert.equal(sanitizeTabTitle('', true), null);
|
|
|
|
assert.equal(sanitizeSharedTitle('Example Movie', 'full'), 'Example Movie');
|
|
assert.equal(sanitizeSharedTitle('', 'full'), null);
|
|
assert.equal(sanitizeSharedTitle(null, 'full'), null);
|
|
|
|
assert.equal(sanitizeSharedTitle('Show Name - S01/E04 - Title', 'episode'), 'S01E04');
|
|
assert.equal(sanitizeSharedTitle('Folge 7 - Private Server', 'episode'), 'EP007');
|
|
assert.equal(sanitizeSharedTitle('Example Movie', 'episode'), null);
|
|
|
|
assert.equal(sanitizeSharedTitle('Show Name - S01E04', 'hidden'), null);
|
|
assert.equal(sanitizeSharedTitle('Private Tab Title', 'hidden'), null);
|
|
|
|
assert.deepEqual(
|
|
applyTitlePrivacyToPayload({
|
|
tabTitle: 'Private Jellyfin - S01E04',
|
|
mediaTitle: 'Show Name - S01E04',
|
|
currentTime: 42
|
|
}, 'episode'),
|
|
{
|
|
tabTitle: 'Private Jellyfin - S01E04',
|
|
mediaTitle: 'S01E04',
|
|
currentTime: 42
|
|
},
|
|
'media privacy must not rewrite tabTitle'
|
|
);
|
|
|
|
assert.deepEqual(
|
|
applyTitlePrivacyToPayload({
|
|
tabTitle: 'Private Jellyfin - S01E04',
|
|
status: 'heartbeat'
|
|
}, 'episode'),
|
|
{
|
|
tabTitle: 'Private Jellyfin - S01E04',
|
|
status: 'heartbeat'
|
|
},
|
|
'media privacy must not rewrite tabTitle or add absent media keys'
|
|
);
|
|
|
|
assert.deepEqual(
|
|
applyTitlePrivacyToPayload({
|
|
tabTitle: 'Private Tab',
|
|
mediaTitle: 'Private Media',
|
|
expectedTitle: 'S01E04',
|
|
title: 'S01E04'
|
|
}, 'hidden'),
|
|
{
|
|
tabTitle: 'Private Tab',
|
|
mediaTitle: null,
|
|
expectedTitle: null,
|
|
title: null
|
|
},
|
|
'hidden media privacy must not clear tabTitle'
|
|
);
|
|
|
|
console.log('title-privacy tests passed');
|