import { describe, it, expect } from 'vitest'; import { groupDeckCards } from '../../lib/deck-detail-grouping.js'; import { getDeckFormatIcon } from '../../lib/deck-format-utils.js'; describe('getDeckFormatIcon', () => { it('returns emoji for known formats', () => { expect(getDeckFormatIcon('Commander')).toBe('⚔️'); expect(getDeckFormatIcon('Standard')).toBe('🏆'); }); it('returns default for unknown format', () => { expect(getDeckFormatIcon('Pioneer')).toBe('🃏'); }); }); describe('groupDeckCards', () => { const cards = [ { name: 'Bolt', card_type: 'Instant', cmc: 1, colors: '["R"]', rarity: 'common', quantity: 4 }, { name: 'Giant', card_type: 'Creature — Giant', cmc: 5, colors: '["R","G"]', rarity: 'rare', quantity: 1 }, ]; it('returns empty object when cards is undefined', () => { expect(groupDeckCards(undefined, 'type')).toEqual({}); }); it('groups by card type prefix', () => { const groups = groupDeckCards(cards, 'type'); expect(groups.Instant).toHaveLength(1); expect(groups.Creature).toHaveLength(1); }); it('groups by cmc', () => { const groups = groupDeckCards(cards, 'cmc'); expect(groups['1 Mana']).toHaveLength(1); expect(groups['5 Mana']).toHaveLength(1); }); });