request-tenant.test.ts28 lines · main
1import { describe, expect, test } from 'bun:test';
2
3import { resolveAuthTenantFromHeaders } from './request-tenant.js';
4import { projectIdToTenantId } from './project-map.js';
5
6describe('briven-engine request tenant', () => {
7 test('maps x-briven-project-id', () => {
8 const t = resolveAuthTenantFromHeaders((n) =>
9 n === 'x-briven-project-id' ? 'p_hello' : undefined,
10 );
11 expect(t).not.toBeNull();
12 expect(t!.engine).toBe('briven-engine');
13 expect(t!.tenantId).toBe('proj-p-hello');
14 expect(t!.projectId).toBe('p_hello');
15 });
16
17 test('null without header', () => {
18 expect(resolveAuthTenantFromHeaders(() => undefined)).toBeNull();
19 });
20
21 test('tenant id is stable for login routing', () => {
22 const a = projectIdToTenantId('p_abc');
23 const b = projectIdToTenantId('p_abc');
24 expect(a).toBe(b);
25 expect(a.startsWith('proj-')).toBe(true);
26 expect(a.includes('_')).toBe(false);
27 });
28});