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'); }); }); }); });