61 lines
2.2 KiB
TypeScript
61 lines
2.2 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { LeagueRoleFormatter, leagueRoleDisplay } from './LeagueRoleFormatter';
|
|
import type { LeagueRole } from './LeagueRoleFormatter';
|
|
|
|
describe('LeagueRoleFormatter', () => {
|
|
describe('getLeagueRoleDisplay', () => {
|
|
it('should return correct display data for owner role', () => {
|
|
const result = LeagueRoleFormatter.getLeagueRoleDisplay('owner');
|
|
expect(result).toEqual({
|
|
text: 'Owner',
|
|
badgeClasses: 'bg-yellow-500/10 text-yellow-500 border-yellow-500/30',
|
|
});
|
|
});
|
|
|
|
it('should return correct display data for admin role', () => {
|
|
const result = LeagueRoleFormatter.getLeagueRoleDisplay('admin');
|
|
expect(result).toEqual({
|
|
text: 'Admin',
|
|
badgeClasses: 'bg-purple-500/10 text-purple-400 border-purple-500/30',
|
|
});
|
|
});
|
|
|
|
it('should return correct display data for steward role', () => {
|
|
const result = LeagueRoleFormatter.getLeagueRoleDisplay('steward');
|
|
expect(result).toEqual({
|
|
text: 'Steward',
|
|
badgeClasses: 'bg-blue-500/10 text-blue-400 border-blue-500/30',
|
|
});
|
|
});
|
|
|
|
it('should return correct display data for member role', () => {
|
|
const result = LeagueRoleFormatter.getLeagueRoleDisplay('member');
|
|
expect(result).toEqual({
|
|
text: 'Member',
|
|
badgeClasses: 'bg-primary-blue/10 text-primary-blue border-primary-blue/30',
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('leagueRoleDisplay constant', () => {
|
|
it('should contain all role definitions', () => {
|
|
expect(leagueRoleDisplay.owner).toBeDefined();
|
|
expect(leagueRoleDisplay.admin).toBeDefined();
|
|
expect(leagueRoleDisplay.steward).toBeDefined();
|
|
expect(leagueRoleDisplay.member).toBeDefined();
|
|
});
|
|
|
|
it('should have correct structure for each role', () => {
|
|
const roles: LeagueRole[] = ['owner', 'admin', 'steward', 'member'];
|
|
|
|
roles.forEach(role => {
|
|
const display = leagueRoleDisplay[role];
|
|
expect(display).toHaveProperty('text');
|
|
expect(display).toHaveProperty('badgeClasses');
|
|
expect(typeof display.text).toBe('string');
|
|
expect(typeof display.badgeClasses).toBe('string');
|
|
});
|
|
});
|
|
});
|
|
});
|