@voxasoftworks/vin
Version:
A package for validating vehicle identification numbers (VINs) written in TypeScript
68 lines • 5.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = __importDefault(require("ava"));
const validate_1 = require("./validate");
const validVins = [
'JT3Gn87rxW0075238',
'4A3Ac74H93e017565',
'2hkrl18621H516782',
'jn8As58V09W104322',
'4T4bF3EK3BR285728',
'3fAfp13p72r127809',
'sALTw19414a838330',
'WauBfafl7BN062724',
'wP1Aa2a22cLA89116',
'1hGCm66503a025097',
];
ava_1.default('a 16 digit VIN', (t) => {
t.false(validate_1.validate('2C4RDGCG2DR50865'));
});
ava_1.default('an 18 digit VIN', (t) => {
t.false(validate_1.validate('2C4RDGCG2DR5086564'));
});
ava_1.default('a 17 digit VIN containing I', (t) => {
t.false(validate_1.validate('2I4RDGCG2DR508656'));
});
ava_1.default('a 17 digit VIN containing O', (t) => {
t.false(validate_1.validate('2O4RDGCG2DR508656'));
});
ava_1.default('a 17 digit VIN containing Q', (t) => {
t.false(validate_1.validate('2Q4RDGCG2DR508656'));
});
ava_1.default('a 17 digit VIN containing i', (t) => {
t.false(validate_1.validate('2i4rdgcg2dr508656'));
});
ava_1.default('a 17 digit VIN containing o', (t) => {
t.false(validate_1.validate('2o4rdgcg2dr508656'));
});
ava_1.default('a 17 digit VIN containing q', (t) => {
t.false(validate_1.validate('2q4rdgcg2dr508656'));
});
ava_1.default('a 17 digit VIN with an incorrect check digit', (t) => {
t.false(validate_1.validate('2C4RDGCG3DR508656'));
});
ava_1.default('a null value', (t) => {
t.false(validate_1.validate(null));
});
ava_1.default('an undefined value', (t) => {
t.false(validate_1.validate(undefined));
});
ava_1.default('no value', (t) => {
t.false(validate_1.validate());
});
ava_1.default('a valid lowercase VIN', (t) => {
const valid = validVins.map((vin) => validate_1.validate(vin.toLowerCase()));
t.true(valid.every((r) => r === true));
});
ava_1.default('a valid uppercase VIN', (t) => {
const valid = validVins.map((vin) => validate_1.validate(vin.toUpperCase()));
t.true(valid.every((r) => r === true));
});
ava_1.default('a valid mixed-case VIN', (t) => {
const valid = validVins.map((vin) => validate_1.validate(vin));
t.true(valid.every((r) => r === true));
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmFsaWRhdGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUF1QjtBQUV2Qix5Q0FBc0M7QUFFdEMsTUFBTSxTQUFTLEdBQUc7SUFDZCxtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQixtQkFBbUI7Q0FDdEIsQ0FBQztBQUVGLGFBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDLENBQUM7QUFFSCxhQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUMxQixDQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyxDQUFDO0FBRUgsYUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDdEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUMsQ0FBQztBQUVILGFBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ3RDLENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDLENBQUM7QUFFSCxhQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUN0QyxDQUFDLENBQUMsS0FBSyxDQUFDLG1C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