@@ -17,12 +17,21 @@ ruleTester.run('prefer-t-regex', rule, {
1717	valid : [ 
1818		header  +  'test(t => t.regex("foo", /\\d+/));' , 
1919		header  +  'test(t => t.regex(foo(), /\\d+/));' , 
20- 		header  +  'test(t => t.is(/\\d+/.test("foo")), true);' , 
20+ 		header  +  'test(t => t.is(/\\d+/.test("foo"), foo));' , 
21+ 		header  +  'test(t => t.is(RegExp("\\d+").test("foo"), foo));' , 
22+ 		header  +  'test(t => t.is(RegExp(/\\d+/).test("foo"), foo));' , 
23+ 		header  +  'test(t => t.is(/\\d+/, /\\w+/));' , 
24+ 		header  +  'test(t => t.is(123, /\\d+/));' , 
2125		header  +  'test(t => t.true(1 === 1));' , 
2226		header  +  'test(t => t.true(foo.bar()));' , 
27+ 		header  +  'test(t => t.is(foo, true));' , 
2328		header  +  'const a = /\\d+/;\ntest(t => t.truthy(a));' , 
2429		header  +  'const a = "not a regexp";\ntest(t => t.true(a.test("foo")));' , 
2530		header  +  'test("main", t => t.true(foo()));' , 
31+ 		header  +  'test(t => t.regex(foo, new RegExp("\\d+")));' , 
32+ 		header  +  'test(t => t.regex(foo, RegExp("\\d+")));' , 
33+ 		header  +  'test(t => t.regex(foo, new RegExp(/\\d+/)));' , 
34+ 		header  +  'test(t => t.regex(foo, RegExp(/\\d+/)));' , 
2635		// Shouldn't be triggered since it's not a test file 
2736		'test(t => t.true(/\\d+/.test("foo")));' 
2837	] , 
@@ -57,10 +66,112 @@ ruleTester.run('prefer-t-regex', rule, {
5766			output : header  +  'test(t => t.regex(foo(), /\\d+/));' , 
5867			errors : errors ( 'regex' ) 
5968		} , 
69+ 		{ 
70+ 			code : header  +  'test(t => t.is(/\\d+/.test(foo), true));' , 
71+ 			output : header  +  'test(t => t.regex(foo, /\\d+/));' , 
72+ 			errors : errors ( 'regex' ) 
73+ 		} , 
74+ 		{ 
75+ 			code : header  +  'test(t => t.is(/\\d+/.test(foo), false));' , 
76+ 			output : header  +  'test(t => t.notRegex(foo, /\\d+/));' , 
77+ 			errors : errors ( 'notRegex' ) 
78+ 		} , 
6079		{ 
6180			code : header  +  'const reg = /\\d+/;\ntest(t => t.true(reg.test(foo.bar())));' , 
6281			output : header  +  'const reg = /\\d+/;\ntest(t => t.regex(foo.bar(), reg));' , 
6382			errors : errors ( 'regex' ) 
83+ 		} , 
84+ 		// The same as the above tests but with `RegExp()` object instead of a regex literal 
85+ 		{ 
86+ 			code : header  +  'test(t => t.true(new RegExp("\\d+").test("foo")));' , 
87+ 			output : header  +  'test(t => t.regex("foo", new RegExp("\\d+")));' , 
88+ 			errors : errors ( 'regex' ) 
89+ 		} , 
90+ 		{ 
91+ 			code : header  +  'test(t => t.false(foo.search(new RegExp("\\d+"))));' , 
92+ 			output : header  +  'test(t => t.notRegex(foo, new RegExp("\\d+")));' , 
93+ 			errors : errors ( 'notRegex' ) 
94+ 		} , 
95+ 		{ 
96+ 			code : header  +  'const regexp = RegExp("\\d+");\ntest(t => t.true(foo.search(regexp)));' , 
97+ 			output : header  +  'const regexp = RegExp("\\d+");\ntest(t => t.regex(foo, regexp));' , 
98+ 			errors : errors ( 'regex' ) 
99+ 		} , 
100+ 		{ 
101+ 			code : header  +  'test(t => t.truthy(foo.match(new RegExp("\\d+"))));' , 
102+ 			output : header  +  'test(t => t.regex(foo, new RegExp("\\d+")));' , 
103+ 			errors : errors ( 'regex' ) 
104+ 		} , 
105+ 		{ 
106+ 			code : header  +  'test(t => t.false(RegExp("\\d+").test("foo")));' , 
107+ 			output : header  +  'test(t => t.notRegex("foo", RegExp("\\d+")));' , 
108+ 			errors : errors ( 'notRegex' ) 
109+ 		} , 
110+ 		{ 
111+ 			code : header  +  'test(t => t.true(new RegExp("\\d+").test(foo())));' , 
112+ 			output : header  +  'test(t => t.regex(foo(), new RegExp("\\d+")));' , 
113+ 			errors : errors ( 'regex' ) 
114+ 		} , 
115+ 		{ 
116+ 			code : header  +  'test(t => t.is(new RegExp("\\d+").test(foo), true));' , 
117+ 			output : header  +  'test(t => t.regex(foo, new RegExp("\\d+")));' , 
118+ 			errors : errors ( 'regex' ) 
119+ 		} , 
120+ 		{ 
121+ 			code : header  +  'test(t => t.is(new RegExp("\\d+").test(foo), false));' , 
122+ 			output : header  +  'test(t => t.notRegex(foo, new RegExp("\\d+")));' , 
123+ 			errors : errors ( 'notRegex' ) 
124+ 		} , 
125+ 		{ 
126+ 			code : header  +  'const reg = RegExp("\\d+");\ntest(t => t.true(reg.test(foo.bar())));' , 
127+ 			output : header  +  'const reg = RegExp("\\d+");\ntest(t => t.regex(foo.bar(), reg));' , 
128+ 			errors : errors ( 'regex' ) 
129+ 		} , 
130+ 		// The same as the above tests but with regex literal instead of string regex 
131+ 		{ 
132+ 			code : header  +  'test(t => t.true(new RegExp(/\\d+/).test("foo")));' , 
133+ 			output : header  +  'test(t => t.regex("foo", new RegExp(/\\d+/)));' , 
134+ 			errors : errors ( 'regex' ) 
135+ 		} , 
136+ 		{ 
137+ 			code : header  +  'test(t => t.false(foo.search(new RegExp(/\\d+/))));' , 
138+ 			output : header  +  'test(t => t.notRegex(foo, new RegExp(/\\d+/)));' , 
139+ 			errors : errors ( 'notRegex' ) 
140+ 		} , 
141+ 		{ 
142+ 			code : header  +  'const regexp = RegExp(/\\d+/);\ntest(t => t.true(foo.search(regexp)));' , 
143+ 			output : header  +  'const regexp = RegExp(/\\d+/);\ntest(t => t.regex(foo, regexp));' , 
144+ 			errors : errors ( 'regex' ) 
145+ 		} , 
146+ 		{ 
147+ 			code : header  +  'test(t => t.truthy(foo.match(new RegExp(/\\d+/))));' , 
148+ 			output : header  +  'test(t => t.regex(foo, new RegExp(/\\d+/)));' , 
149+ 			errors : errors ( 'regex' ) 
150+ 		} , 
151+ 		{ 
152+ 			code : header  +  'test(t => t.false(RegExp(/\\d+/).test("foo")));' , 
153+ 			output : header  +  'test(t => t.notRegex("foo", RegExp(/\\d+/)));' , 
154+ 			errors : errors ( 'notRegex' ) 
155+ 		} , 
156+ 		{ 
157+ 			code : header  +  'test(t => t.true(new RegExp(/\\d+/).test(foo())));' , 
158+ 			output : header  +  'test(t => t.regex(foo(), new RegExp(/\\d+/)));' , 
159+ 			errors : errors ( 'regex' ) 
160+ 		} , 
161+ 		{ 
162+ 			code : header  +  'test(t => t.is(new RegExp(/\\d+/).test(foo), true));' , 
163+ 			output : header  +  'test(t => t.regex(foo, new RegExp(/\\d+/)));' , 
164+ 			errors : errors ( 'regex' ) 
165+ 		} , 
166+ 		{ 
167+ 			code : header  +  'test(t => t.is(new RegExp(/\\d+/).test(foo), false));' , 
168+ 			output : header  +  'test(t => t.notRegex(foo, new RegExp(/\\d+/)));' , 
169+ 			errors : errors ( 'notRegex' ) 
170+ 		} , 
171+ 		{ 
172+ 			code : header  +  'const reg = RegExp(/\\d+/);\ntest(t => t.true(reg.test(foo.bar())));' , 
173+ 			output : header  +  'const reg = RegExp(/\\d+/);\ntest(t => t.regex(foo.bar(), reg));' , 
174+ 			errors : errors ( 'regex' ) 
64175		} 
65176	] 
66177} ) ; 
0 commit comments