mirror of
https://github.com/KuekHaoYang/KVideo.git
synced 2026-08-14 16:23:43 +08:00
Keep every post-59948b5 change inside verification/. The verifier owns its npm working directory and sanitized Docker context, so no release metadata or root Docker configuration is modified.
44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
|
|
import {
|
|
keepRenderableFavorites,
|
|
keepRenderableHistory,
|
|
} from '../../../lib/utils/sync-records';
|
|
|
|
// GH-ISSUE: 66,115,149,226,228; GH-PR: 90,227,229,231
|
|
|
|
const validIdentity = {
|
|
videoId: 'video-1',
|
|
source: 'source-a',
|
|
title: 'Example',
|
|
};
|
|
|
|
test('sync record filters reject malformed identities', () => {
|
|
assert.deepEqual(keepRenderableFavorites([
|
|
validIdentity,
|
|
{ ...validIdentity, videoId: undefined },
|
|
{ ...validIdentity, videoId: Number.NaN },
|
|
{ ...validIdentity, source: '' },
|
|
{ ...validIdentity, title: ' ' },
|
|
null,
|
|
]), [validIdentity]);
|
|
});
|
|
|
|
test('history records require a usable episode index', () => {
|
|
const validHistory = { ...validIdentity, episodeIndex: 0 };
|
|
|
|
assert.deepEqual(keepRenderableHistory([
|
|
validHistory,
|
|
{ ...validIdentity },
|
|
{ ...validIdentity, episodeIndex: -1 },
|
|
{ ...validIdentity, episodeIndex: 1.5 },
|
|
{ ...validIdentity, episodeIndex: '0' },
|
|
]), [validHistory]);
|
|
});
|
|
|
|
test('sync record filters tolerate non-array payloads', () => {
|
|
assert.deepEqual(keepRenderableHistory({ history: [] }), []);
|
|
assert.deepEqual(keepRenderableFavorites(undefined), []);
|
|
});
|