1
+ /* eslint-disable no-template-curly-in-string */
1
2
/**
2
3
* @fileoverview Prefer toHaveTextContent over checking element.textContent
3
4
* @author Ben Monro
@@ -14,7 +15,7 @@ import * as rule from "../../../rules/prefer-to-have-text-content";
14
15
// Tests
15
16
//------------------------------------------------------------------------------
16
17
17
- const ruleTester = new RuleTester ( ) ;
18
+ const ruleTester = new RuleTester ( { parserOptions : { ecmaVersion : 2015 } } ) ;
18
19
ruleTester . run ( "prefer-to-have-text-content" , rule , {
19
20
valid : [
20
21
`expect(string).toBe("foo")` ,
@@ -93,6 +94,47 @@ ruleTester.run("prefer-to-have-text-content", rule, {
93
94
] ,
94
95
output : `expect(container.firstChild).toHaveTextContent(/foo/)` ,
95
96
} ,
97
+ {
98
+ code : `expect(container.textContent).toContain(FOO.bar)` ,
99
+ errors : [
100
+ {
101
+ message :
102
+ "Use toHaveTextContent instead of asserting on DOM node attributes" ,
103
+ } ,
104
+ ] ,
105
+ output : `expect(container).toHaveTextContent(new RegExp(FOO.bar))` ,
106
+ } ,
107
+ {
108
+ code : `expect(container.textContent).not.toContain(FOO.bar)` ,
109
+ errors : [
110
+ {
111
+ message :
112
+ "Use toHaveTextContent instead of asserting on DOM node attributes" ,
113
+ } ,
114
+ ] ,
115
+ output : `expect(container).not.toHaveTextContent(new RegExp(FOO.bar))` ,
116
+ } ,
117
+ {
118
+ code : "expect(container.textContent).toContain(`${FOO.bar} baz`)" ,
119
+ errors : [
120
+ {
121
+ message :
122
+ "Use toHaveTextContent instead of asserting on DOM node attributes" ,
123
+ } ,
124
+ ] ,
125
+ output :
126
+ "expect(container).toHaveTextContent(new RegExp(`${FOO.bar} baz`))" ,
127
+ } ,
128
+ {
129
+ code : `expect(container.textContent).toContain(bazify(FOO.bar))` ,
130
+ errors : [
131
+ {
132
+ message :
133
+ "Use toHaveTextContent instead of asserting on DOM node attributes" ,
134
+ } ,
135
+ ] ,
136
+ output : `expect(container).toHaveTextContent(new RegExp(bazify(FOO.bar)))` ,
137
+ } ,
96
138
{
97
139
code : 'expect(element.textContent).toMatch("foo")' ,
98
140
errors : [
@@ -103,6 +145,27 @@ ruleTester.run("prefer-to-have-text-content", rule, {
103
145
] ,
104
146
output : `expect(element).toHaveTextContent(/foo/)` ,
105
147
} ,
148
+ {
149
+ code : "expect(element.textContent).toMatch(/foo bar/)" ,
150
+ errors : [
151
+ {
152
+ message :
153
+ "Use toHaveTextContent instead of asserting on DOM node attributes" ,
154
+ } ,
155
+ ] ,
156
+ output : "expect(element).toHaveTextContent(/foo bar/)" ,
157
+ } ,
158
+ {
159
+ code : "expect(element.textContent).not.toMatch(/foo bar/)" ,
160
+ errors : [
161
+ {
162
+ message :
163
+ "Use toHaveTextContent instead of asserting on DOM node attributes" ,
164
+ } ,
165
+ ] ,
166
+ output : "expect(element).not.toHaveTextContent(/foo bar/)" ,
167
+ } ,
168
+
106
169
{
107
170
code : 'expect(element.textContent).not.toMatch("foo")' ,
108
171
errors : [
0 commit comments