67 lines
2.3 KiB
TypeScript
67 lines
2.3 KiB
TypeScript
import { describe, expect, test } from 'bun:test';
|
|
|
|
import { IS_COMPILED } from '../src/build-flags.ts';
|
|
import { parseDevUserOverride } from '../src/config.ts';
|
|
import { userFromDevOverride } from '../src/os-user.ts';
|
|
|
|
describe('DEV_USER_OVERRIDE', () => {
|
|
test('IS_COMPILED is false for uncompiled runs', () => {
|
|
expect(IS_COMPILED).toBe(false);
|
|
});
|
|
|
|
test('parses email & displayName and builds a user', async () => {
|
|
const override = parseDevUserOverride(
|
|
JSON.stringify({
|
|
email: 'dev@example.com',
|
|
displayName: 'Dev Override',
|
|
}),
|
|
{ isCompiled: false },
|
|
);
|
|
expect(override).toEqual({
|
|
email: 'dev@example.com',
|
|
displayName: 'Dev Override',
|
|
uid: null,
|
|
photoURL: null,
|
|
});
|
|
|
|
const user = await userFromDevOverride(override!);
|
|
expect(user.email).toBe('dev@example.com');
|
|
expect(user.displayName).toBe('Dev Override');
|
|
expect(user.uid).toMatch(
|
|
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,
|
|
);
|
|
});
|
|
|
|
test('respects explicit uid', async () => {
|
|
const override = parseDevUserOverride(
|
|
JSON.stringify({
|
|
email: 'dev@example.com',
|
|
displayName: 'Dev Override',
|
|
uid: '11111111-2222-4333-8444-555555555555',
|
|
}),
|
|
{ isCompiled: false },
|
|
);
|
|
const user = await userFromDevOverride(override!);
|
|
expect(user.uid).toBe('11111111-2222-4333-8444-555555555555');
|
|
});
|
|
|
|
test('rejects override in compiled builds', () => {
|
|
expect(() => parseDevUserOverride(
|
|
JSON.stringify({
|
|
email: 'dev@example.com',
|
|
displayName: 'Dev Override',
|
|
}),
|
|
{ isCompiled: true },
|
|
)).toThrow(/not allowed in compiled builds/);
|
|
});
|
|
|
|
test('rejects invalid JSON', () => {
|
|
expect(() => parseDevUserOverride('{nope', { isCompiled: false }))
|
|
.toThrow(/must be valid JSON/);
|
|
});
|
|
|
|
test('empty string means no override', () => {
|
|
expect(parseDevUserOverride('', { isCompiled: false })).toBeNull();
|
|
expect(parseDevUserOverride(' ', { isCompiled: true })).toBeNull();
|
|
});
|
|
});
|