Files
ccs/tests/unit/auth/shared-resource-policy.test.ts
T

56 lines
1.8 KiB
TypeScript

import { describe, expect, it } from 'bun:test';
import {
normalizeSharedResourceMetadata,
resolveSharedResourcePolicy,
sharedResourceModeToMetadata,
} from '../../../src/auth/shared-resource-policy';
describe('shared resource policy', () => {
it('defaults missing metadata to shared resources', () => {
const policy = resolveSharedResourcePolicy(undefined);
expect(policy.mode).toBe('shared');
expect(policy.inferred).toBe(true);
expect(policy.profileLocal).toBe(false);
});
it('resolves legacy bare metadata as profile-local', () => {
const policy = resolveSharedResourcePolicy({ bare: true });
expect(policy.mode).toBe('profile-local');
expect(policy.inferred).toBe(true);
expect(policy.profileLocal).toBe(true);
});
it('lets explicit shared mode override stale bare metadata', () => {
const normalized = normalizeSharedResourceMetadata({
shared_resource_mode: 'shared',
bare: true,
});
expect(normalized.shared_resource_mode).toBe('shared');
expect(normalized.bare).toBeUndefined();
expect(resolveSharedResourcePolicy(normalized).profileLocal).toBe(false);
});
it('normalizes explicit profile-local mode to legacy-compatible bare metadata', () => {
const normalized = normalizeSharedResourceMetadata({
shared_resource_mode: 'profile-local',
});
expect(normalized.shared_resource_mode).toBe('profile-local');
expect(normalized.bare).toBe(true);
});
it('builds write metadata for both supported modes', () => {
expect(sharedResourceModeToMetadata('profile-local')).toEqual({
shared_resource_mode: 'profile-local',
bare: true,
});
expect(sharedResourceModeToMetadata('shared')).toEqual({
shared_resource_mode: 'shared',
bare: undefined,
});
});
});