test(web-server): cover profile and variant target parsing

- export route target parsers for direct unit coverage

- verify accepted and rejected target payloads for both route modules
This commit is contained in:
Tam Nhu Tran
2026-02-25 17:01:06 +07:00
parent 2bd3c40c7a
commit 2e8c7a3691
3 changed files with 29 additions and 2 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ import { updateSettingsFile } from './route-helpers';
const router = Router();
function parseTarget(rawTarget: unknown): TargetType | null {
export function parseTarget(rawTarget: unknown): TargetType | null {
if (rawTarget === undefined || rawTarget === null || rawTarget === '') {
return null;
}
+1 -1
View File
@@ -24,7 +24,7 @@ import {
const router = Router();
function parseTarget(rawTarget: unknown): TargetType | null {
export function parseTarget(rawTarget: unknown): TargetType | null {
if (rawTarget === undefined || rawTarget === null || rawTarget === '') {
return null;
}
@@ -0,0 +1,27 @@
import { describe, expect, it } from 'bun:test';
import { parseTarget as parseProfileTarget } from '../../../src/web-server/routes/profile-routes';
import { parseTarget as parseVariantTarget } from '../../../src/web-server/routes/variant-routes';
describe('route target parsing', () => {
it('accepts valid target values', () => {
expect(parseProfileTarget('claude')).toBe('claude');
expect(parseProfileTarget('DROID')).toBe('droid');
expect(parseVariantTarget(' claude ')).toBe('claude');
expect(parseVariantTarget('droid')).toBe('droid');
});
it('returns null for invalid target values', () => {
expect(parseProfileTarget('glm')).toBeNull();
expect(parseProfileTarget('')).toBeNull();
expect(parseVariantTarget('factory')).toBeNull();
expect(parseVariantTarget(' ')).toBeNull();
});
it('returns null for non-string values', () => {
expect(parseProfileTarget(undefined)).toBeNull();
expect(parseProfileTarget(null)).toBeNull();
expect(parseVariantTarget(123)).toBeNull();
expect(parseVariantTarget({ target: 'claude' })).toBeNull();
});
});