Files
gridpilot.gg/apps/website/lib/formatters/LeagueRoleFormatter.test.ts
Marc Mintel 3db2209d2a
Some checks failed
CI / lint-typecheck (push) Failing after 4m52s
CI / tests (push) Has been skipped
CI / contract-tests (push) Has been skipped
CI / e2e-tests (push) Has been skipped
CI / comment-pr (push) Has been skipped
CI / commit-types (push) Has been skipped
formatter tests
2026-01-25 11:17:47 +01:00

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