48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { normalizeLiveStatus, resolveLiveShowApproveMode, resolveStatusTone } from './controlRoom';
|
|
|
|
describe('normalizeLiveStatus', () => {
|
|
it('maps nullish statuses to none', () => {
|
|
expect(normalizeLiveStatus(null)).toBe('none');
|
|
expect(normalizeLiveStatus(undefined)).toBe('none');
|
|
expect(normalizeLiveStatus('')).toBe('none');
|
|
});
|
|
|
|
it('passes through supported statuses', () => {
|
|
expect(normalizeLiveStatus('pending')).toBe('pending');
|
|
expect(normalizeLiveStatus('approved')).toBe('approved');
|
|
expect(normalizeLiveStatus('rejected')).toBe('rejected');
|
|
});
|
|
});
|
|
|
|
describe('resolveLiveShowApproveMode', () => {
|
|
it('prefers approve-and-live for pending gallery', () => {
|
|
expect(resolveLiveShowApproveMode('pending')).toBe('approve-and-live');
|
|
});
|
|
|
|
it('returns approve-only for approved gallery', () => {
|
|
expect(resolveLiveShowApproveMode('approved')).toBe('approve-only');
|
|
});
|
|
|
|
it('returns not-eligible for rejected or hidden gallery', () => {
|
|
expect(resolveLiveShowApproveMode('rejected')).toBe('not-eligible');
|
|
expect(resolveLiveShowApproveMode('hidden')).toBe('not-eligible');
|
|
});
|
|
});
|
|
|
|
describe('resolveStatusTone', () => {
|
|
it('maps approved to success', () => {
|
|
expect(resolveStatusTone('approved')).toBe('success');
|
|
});
|
|
|
|
it('maps pending to warning', () => {
|
|
expect(resolveStatusTone('pending')).toBe('warning');
|
|
});
|
|
|
|
it('maps other statuses to muted', () => {
|
|
expect(resolveStatusTone('rejected')).toBe('muted');
|
|
expect(resolveStatusTone('hidden')).toBe('muted');
|
|
expect(resolveStatusTone(undefined)).toBe('muted');
|
|
});
|
|
});
|