- @bytelyst/backend-flags: createFlagRegistry() with defaults, 6 tests - @bytelyst/backend-telemetry: createTelemetryBuffer() with enabled switch, 5 tests
44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { createFlagRegistry } from './index.js';
|
|
|
|
describe('createFlagRegistry', () => {
|
|
it('returns default flag values', () => {
|
|
const registry = createFlagRegistry({
|
|
defaults: { 'feature.a': true, 'feature.b': false },
|
|
});
|
|
expect(registry.isFeatureEnabled('feature.a')).toBe(true);
|
|
expect(registry.isFeatureEnabled('feature.b')).toBe(false);
|
|
});
|
|
|
|
it('returns false for unknown flags', () => {
|
|
const registry = createFlagRegistry({ defaults: {} });
|
|
expect(registry.isFeatureEnabled('nonexistent')).toBe(false);
|
|
});
|
|
|
|
it('getAllFlags returns all defaults', () => {
|
|
const registry = createFlagRegistry({
|
|
defaults: { a: true, b: false, c: true },
|
|
});
|
|
expect(registry.getAllFlags()).toEqual({ a: true, b: false, c: true });
|
|
});
|
|
|
|
it('setFlag overrides a value', () => {
|
|
const registry = createFlagRegistry({ defaults: { x: false } });
|
|
expect(registry.isFeatureEnabled('x')).toBe(false);
|
|
registry.setFlag('x', true);
|
|
expect(registry.isFeatureEnabled('x')).toBe(true);
|
|
});
|
|
|
|
it('setFlag creates new flags', () => {
|
|
const registry = createFlagRegistry({ defaults: {} });
|
|
registry.setFlag('new.flag', true);
|
|
expect(registry.isFeatureEnabled('new.flag')).toBe(true);
|
|
expect(registry.getAllFlags()).toEqual({ 'new.flag': true });
|
|
});
|
|
|
|
it('accepts userId parameter without error', () => {
|
|
const registry = createFlagRegistry({ defaults: { a: true } });
|
|
expect(registry.isFeatureEnabled('a', 'user-1')).toBe(true);
|
|
});
|
|
});
|