1+ /* eslint-disable no-template-curly-in-string */
12/**
23 * @fileoverview Prefer toHaveTextContent over checking element.textContent
34 * @author Ben Monro
@@ -14,7 +15,7 @@ import * as rule from "../../../rules/prefer-to-have-text-content";
1415// Tests
1516//------------------------------------------------------------------------------
1617
17- const ruleTester = new RuleTester ( ) ;
18+ const ruleTester = new RuleTester ( { parserOptions : { ecmaVersion : 2015 } } ) ;
1819ruleTester . run ( "prefer-to-have-text-content" , rule , {
1920 valid : [
2021 `expect(string).toBe("foo")` ,
@@ -93,6 +94,47 @@ ruleTester.run("prefer-to-have-text-content", rule, {
9394 ] ,
9495 output : `expect(container.firstChild).toHaveTextContent(/foo/)` ,
9596 } ,
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+ } ,
96138 {
97139 code : 'expect(element.textContent).toMatch("foo")' ,
98140 errors : [
@@ -103,6 +145,27 @@ ruleTester.run("prefer-to-have-text-content", rule, {
103145 ] ,
104146 output : `expect(element).toHaveTextContent(/foo/)` ,
105147 } ,
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+
106169 {
107170 code : 'expect(element.textContent).not.toMatch("foo")' ,
108171 errors : [
0 commit comments