import { isValid } from '../index';

// 测试数据随机生成，如有雷同纯属巧合

test('correct case', () => {
    [
        '430000198101118929',
        '440100196407163093',
        '440100196810317697',
        '410000197806221530',
        '41000019801226025X',
        '41000019801226025x',
        '330000196409104467',
    ].forEach((idno) => expect(isValid(idno)).toBe(true));
});

test('wrong case', () => {
    [
        // 校验码错误
        '430000198101118920',
        '430000198101118921',
        '430000198101118922',
        '430000198101118923',
        '430000198101118924',
        '430000198101118925',
        '430000198101118926',
        '430000198101118927',
        '430000198101118928',
        '43000019810111892X',
        '43000019810111892x',
        // 位数错误
        '43000019810111892',
        // 地址码错误
        '730000198101118929',
        // 顺序码错误
        '430000198101118919',
        // 年份错误
        '430000178101118929',
        '',
    ].forEach((idno) => expect(isValid(idno)).toBe(false));

    // @ts-ignore
    expect(isValid({})).toBe(false);
    // @ts-ignore
    expect(isValid()).toBe(false);
    // @ts-ignore
    expect(isValid(null)).toBe(false);
});
