index.js
2.26 KB
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
var assert = require('assert')
var clone = require('../');
describe('regexp-clone', function(){
function hasEqualSource (a, b) {
assert.ok(a !== b);
assert.equal(a.source, b.source);
}
function isInsensitive (a) {
assert.ok(a.ignoreCase);
}
function isGlobal (a) {
assert.ok(a.global);
}
function isMultiline (a) {
assert.ok(a.multiline);
}
function insensitiveFlag (a) {
var b = clone(a);
hasEqualSource(a, b);
isInsensitive(a);
isInsensitive(b);
}
function globalFlag (a) {
var b = clone(a);
hasEqualSource(a, b);
isGlobal(a);
isGlobal(b);
}
function multilineFlag (a) {
var b = clone(a);
hasEqualSource(a, b);
isMultiline(a);
isMultiline(b);
}
describe('literals', function(){
it('insensitive flag', function(done){
var a = /hello/i;
insensitiveFlag(a);
done();
})
it('global flag', function(done){
var a = /hello/g;
globalFlag(a);
done();
})
it('multiline flag', function(done){
var a = /hello/m;
multilineFlag(a);
done();
})
it('no flags', function(done){
var a = /hello/;
var b = clone(a);
hasEqualSource(a, b);
assert.ok(!a.insensitive);
assert.ok(!a.global);
assert.ok(!a.global);
done();
})
it('all flags', function(done){
var a = /hello/gim;
insensitiveFlag(a);
globalFlag(a);
multilineFlag(a);
done();
})
})
describe('instances', function(){
it('insensitive flag', function(done){
var a = new RegExp('hello', 'i');
insensitiveFlag(a);
done();
})
it('global flag', function(done){
var a = new RegExp('hello', 'g');
globalFlag(a);
done();
})
it('multiline flag', function(done){
var a = new RegExp('hello', 'm');
multilineFlag(a);
done();
})
it('no flags', function(done){
var a = new RegExp('hmm');
var b = clone(a);
hasEqualSource(a, b);
assert.ok(!a.insensitive);
assert.ok(!a.global);
assert.ok(!a.global);
done();
})
it('all flags', function(done){
var a = new RegExp('hello', 'gim');
insensitiveFlag(a);
globalFlag(a);
multilineFlag(a);
done();
})
})
})