cn-idno-validator
Version:
49 lines (44 loc) • 1.25 kB
text/typescript
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);
});