-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtest.js
137 lines (110 loc) · 4.03 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
'use strict';
var assert = require('assert');
var naijaNumber = require('./index.js');
var prefixes = {
MTN: ['0803', '0806', '0703', '0706', '0813', '0816', '0810', '0814', '0903'],
Airtel: ['0708', '0802', '0808', '0812', '0701', '0902'],
GLO: ['0705', '0815', '0805', '0807', '0811', '0905'],
Etisalat: ['0809', '0817', '0818', '0909', '0908'],
Starcomms: ['07028', '07029', '0819'],
Visafone: ['0704', '07025', '07026'],
Multilinks: ['0709', '07027'],
Zoom: ['0707'],
MTEL: ['0804']
};
var suffix = '9764320';
describe('Test Numbers', function() {
describe('Network providers', function() {
it('should return false for unknown network providers', function() {
assert.equal(false, naijaNumber.isValid('05018154929'));
});
it('MTN numbers', function() {
var result = prefixes.MTN.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('GLO numbers', function() {
var result = prefixes.GLO.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('Airtel numbers', function() {
var result = prefixes.Airtel.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('Etisalat numbers', function() {
var result = prefixes.Etisalat.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('Visafone numbers', function() {
var result = prefixes.Visafone.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('Starcomms numbers', function() {
var result = prefixes.Starcomms.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('Multilinks numbers', function() {
var result = prefixes.Multilinks.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('Zoom numbers', function() {
var result = prefixes.Zoom.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
it('MTEL numbers', function() {
var result = prefixes.MTEL.map(function(prefix) {
return naijaNumber.isValid(prefix + suffix);
});
assert.equal(-1, result.indexOf(false));
});
});
describe('Length of digits.', function() {
it('should return true for eleven (11) digit numbers.', function() {
assert.equal(true, naijaNumber.isValid('081028582392'));
});
it('should return true for twelve (12) digit numbers.', function() {
assert.equal(true, naijaNumber.isValid('081981449797'));
});
it('should return false for < 11 digit numbers.', function() {
assert.equal(false, naijaNumber.isValid('080481447'));
});
it('should return false for > 12 digit numbers.', function() {
assert.equal(false, naijaNumber.isValid('0803815492999'));
});
});
describe('Argument data types', function() {
it('should return false for objects', function() {
assert.equal(false, naijaNumber.isValid({}));
});
it('should return false for arrays', function() {
assert.equal(false, naijaNumber.isValid([1, 2, 3]));
});
it('should return false for null', function() {
assert.equal(false, naijaNumber.isValid(null));
});
it('should return false for empty string', function() {
assert.equal(false, naijaNumber.isValid(''));
});
it('should return false for empty args', function() {
assert.equal(false, naijaNumber.isValid());
});
it('should return false for non integers or alpha-numerics', function() {
assert.equal(false, naijaNumber.isValid('080d-815f929'));
});
});
});