ts-tracking-number
Version:
Detect and validate tracking numbers for USPS, UPS, FedEx, and other major couriers.
53 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("./util");
const chai_1 = require("chai");
util_1.allCouriers.map((courier) => {
describe(courier.name, () => {
courier.tracking_numbers.map(trackingNumber => {
describe(trackingNumber.name, () => {
it('Choses the correct courier', done => {
trackingNumber.test_numbers.valid.map(n => {
chai_1.expect(util_1.getTracking(n).courier.code).to.eq(courier.courier_code);
});
done();
});
it('Does not find a courier for invalid tracking numbers', done => {
trackingNumber.test_numbers.invalid.map(n => {
const tracking = util_1.getTracking(n);
tracking
? chai_1.expect(tracking.courier.code).to.not.eq(courier.courier_code)
: chai_1.expect(tracking).to.be.undefined;
});
done();
});
});
});
});
});
describe('getTracking', () => {
it('Uses all couriers when none are specified', done => {
chai_1.expect(util_1.getTracking('9400111202555842332669')).to.not.be.undefined;
done();
});
it('Uses only supplied couriers when specified', done => {
chai_1.expect(util_1.getTracking('9400111202555842332669', [util_1.fedex])).to.be.undefined;
done();
});
});
describe('Tracking Search', () => {
it('Finds valid tracking codes in text', done => {
const text = 'USPS tracking number: 9400111202555842332669, but 9261292700768711948020 is bad and '
+ '7112 3456 7891 2345 6787 is good and this is a dupe 94001 11202 55584 2332669';
chai_1.expect(util_1.findTracking(text)).to.have.length(2);
done();
});
it('Treats new lines correctly', done => {
chai_1.expect(util_1.findTracking('254899580324\n254899580324')).to.have.length(1);
chai_1.expect(util_1.findTracking('254899580324\r254899580324')).to.have.length(1);
chai_1.expect(util_1.findTracking('254899580324\r\n254899580324')).to.have.length(1);
chai_1.expect(util_1.findTracking('254899580324\n\n254899580324')).to.have.length(1);
done();
});
});
//# sourceMappingURL=util.spec.js.map