request-tenant.test.ts28 lines · main
| 1 | import { describe, expect, test } from 'bun:test'; |
| 2 | |
| 3 | import { resolveAuthTenantFromHeaders } from './request-tenant.js'; |
| 4 | import { projectIdToTenantId } from './project-map.js'; |
| 5 | |
| 6 | describe('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 | }); |