india-pincode-regex/tests/validate.js

44 lines
1.7 KiB
JavaScript

const P = require('../src/index');
const assert = require('assert');
// A few correct ones
assert.strictEqual(P.validate('110011'), true, '110011');
assert.strictEqual(P.validate('244713'), true, '244713');
assert.strictEqual(P.validate('560029'), true, '560029');
assert.strictEqual(P.validate('560030'), true, '560030');
// Incorrect
assert.strictEqual(P.validate('address 560030'), false, 'address 560030 should fail');
assert.strictEqual(P.validate('1100111'), false, '1100111');
assert.strictEqual(P.validate('111111'), false, '111111');
assert.strictEqual(P.validate('999999'), false, '999999');
assert.strictEqual(P.validate('99999'), false, '99999');
assert.strictEqual(P.validate('9999'), false, '9999');
assert.strictEqual(P.validate('999'), false, '999');
assert.strictEqual(P.validate('99'), false, '99');
assert.strictEqual(P.validate('9'), false, '9');
// Validate search method
assert.deepEqual(P.search('bangalore 560038 244713'), ['560038', '244713'])
assert.deepEqual(P.search('bangalore 560038'), ['560038'])
assert.deepEqual(P.search('560038 BENGALURU'), ['560038'])
assert.deepEqual(P.search('560038'), ['560038'])
assert.deepEqual(P.search('my pincode is 244713'), ['244713'])
assert.deepEqual(P.search('560029 pin'), ['560029'])
// Validate direct regex exports
assert(P.regex instanceof RegExp)
assert(P.exactRegex instanceof RegExp)
// exact regex only works with 6 digit strings
assert(P.exactRegex.test('560029'))
assert.match('560029', P.exactRegex)
assert.doesNotMatch('111111', P.exactRegex)
assert.doesNotMatch('address is 560029', P.exactRegex)
// Normal regex works with long addresses
assert.match('560029', P.regex)
assert.match('address is 560029', P.regex)
assert.doesNotMatch('address is 111111', P.regex)
assert.doesNotMatch('111111', P.regex)