mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import {
|
|
createGetJellyfinClientInfoHandler,
|
|
createGetResolvedJellyfinConfigHandler,
|
|
} from './jellyfin-client-info';
|
|
|
|
test('get resolved jellyfin config returns jellyfin section from resolved config', () => {
|
|
const jellyfin = { url: 'https://jellyfin.local' } as never;
|
|
const getConfig = createGetResolvedJellyfinConfigHandler({
|
|
getResolvedConfig: () => ({ jellyfin } as never),
|
|
});
|
|
|
|
assert.equal(getConfig(), jellyfin);
|
|
});
|
|
|
|
test('jellyfin client info resolves defaults when fields are missing', () => {
|
|
const getClientInfo = createGetJellyfinClientInfoHandler({
|
|
getResolvedJellyfinConfig: () => ({ clientName: '', clientVersion: '', deviceId: '' } as never),
|
|
getDefaultJellyfinConfig: () =>
|
|
({
|
|
clientName: 'SubMiner',
|
|
clientVersion: '1.0.0',
|
|
deviceId: 'default-device',
|
|
}) as never,
|
|
});
|
|
|
|
assert.deepEqual(getClientInfo(), {
|
|
clientName: 'SubMiner',
|
|
clientVersion: '1.0.0',
|
|
deviceId: 'default-device',
|
|
});
|
|
});
|
|
|
|
test('jellyfin client info keeps explicit config values', () => {
|
|
const getClientInfo = createGetJellyfinClientInfoHandler({
|
|
getResolvedJellyfinConfig: () =>
|
|
({
|
|
clientName: 'Custom',
|
|
clientVersion: '2.3.4',
|
|
deviceId: 'custom-device',
|
|
}) as never,
|
|
getDefaultJellyfinConfig: () =>
|
|
({
|
|
clientName: 'SubMiner',
|
|
clientVersion: '1.0.0',
|
|
deviceId: 'default-device',
|
|
}) as never,
|
|
});
|
|
|
|
assert.deepEqual(getClientInfo(), {
|
|
clientName: 'Custom',
|
|
clientVersion: '2.3.4',
|
|
deviceId: 'custom-device',
|
|
});
|
|
});
|