deckhearth/test/lib/card-number-utils.test.js

36 lines
1,017 B
JavaScript
Raw Normal View History

import { describe, expect, it } from 'vitest';
import {
cardNumbersEquivalent,
findPrintingByCollectorNumber,
normalizeCardNumber,
} from '../../lib/card-number-utils.js';
describe('normalizeCardNumber', () => {
it('treats leading-zero numerators as equivalent', () => {
expect(normalizeCardNumber('015/208')).toBe('15/208');
expect(normalizeCardNumber('15/208')).toBe('15/208');
expect(normalizeCardNumber('18/88')).toBe('18/88');
});
});
describe('cardNumbersEquivalent', () => {
it('matches normalized collector numbers', () => {
expect(cardNumbersEquivalent('015/208', '15/208')).toBe(true);
expect(cardNumbersEquivalent('18/88', '015/208')).toBe(false);
});
});
describe('findPrintingByCollectorNumber', () => {
it('returns the sole matching printing', () => {
const match = findPrintingByCollectorNumber(
[
{ id: 1, card_number: '18/88' },
{ id: 2, card_number: '19/88' },
],
'018/88'
);
expect(match?.id).toBe(1);
});
});