Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d33f0e9

Browse files
authored
chore(lint): add and apply eslint-plugin-testing-library (testing-library#201)
Closes testing-library#198
1 parent 25a4ca3 commit d33f0e9

13 files changed

+47
-37
lines changed

‎.eslintrc.json‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
},
3737
{
3838
"files": ["*.ts"],
39+
"plugins": ["eslint-plugin-import", "@angular-eslint/eslint-plugin", "@typescript-eslint"],
3940
"rules": {
4041
"@typescript-eslint/consistent-type-definitions": "error",
4142
"@typescript-eslint/dot-notation": "off",
@@ -102,8 +103,14 @@
102103
"markers": ["/"]
103104
}
104105
]
105-
},
106-
"plugins": ["eslint-plugin-import", "@angular-eslint/eslint-plugin", "@typescript-eslint"]
106+
}
107+
},
108+
{
109+
"files": ["*.spec.ts"],
110+
"extends": ["plugin:testing-library/angular", "plugin:jest-dom/recommended"],
111+
"rules": {
112+
"testing-library/prefer-explicit-assert": "error"
113+
}
107114
},
108115
{
109116
"files": ["*.html"],

‎apps/example-app/src/app/examples/00-single-component.spec.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ test('renders the current value and can increment and decrement', async () => {
99
const decrementControl = screen.getByRole('button', { name: /decrement/i });
1010
const valueControl = screen.getByTestId('value');
1111

12-
expect(valueControl.textContent).toBe('0');
12+
expect(valueControl).toHaveTextContent('0');
1313

1414
fireEvent.click(incrementControl);
1515
fireEvent.click(incrementControl);
16-
expect(valueControl.textContent).toBe('2');
16+
expect(valueControl).toHaveTextContent('2');
1717

1818
fireEvent.click(decrementControl);
19-
expect(valueControl.textContent).toBe('1');
19+
expect(valueControl).toHaveTextContent('1');
2020
});

‎apps/example-app/src/app/examples/01-nested-component.spec.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ test('renders the current value and can increment and decrement', async () => {
1111
const decrementControl = screen.getByRole('button', { name: /decrement/i });
1212
const valueControl = screen.getByTestId('value');
1313

14-
expect(valueControl.textContent).toBe('0');
14+
expect(valueControl).toHaveTextContent('0');
1515

1616
fireEvent.click(incrementControl);
1717
fireEvent.click(incrementControl);
18-
expect(valueControl.textContent).toBe('2');
18+
expect(valueControl).toHaveTextContent('2');
1919

2020
fireEvent.click(decrementControl);
21-
expect(valueControl.textContent).toBe('1');
21+
expect(valueControl).toHaveTextContent('1');
2222
});

‎apps/example-app/src/app/examples/02-input-output.spec.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ test('is possible to set input and listen for output', async () => {
1818
const sendControl = screen.getByRole('button', { name: /send/i });
1919
const valueControl = screen.getByTestId('value');
2020

21-
expect(valueControl.textContent).toBe('47');
21+
expect(valueControl).toHaveTextContent('47');
2222

2323
fireEvent.click(incrementControl);
2424
fireEvent.click(incrementControl);
2525
fireEvent.click(incrementControl);
26-
expect(valueControl.textContent).toBe('50');
26+
expect(valueControl).toHaveTextContent('50');
2727

2828
fireEvent.click(sendControl);
2929
expect(sendValue).toHaveBeenCalledTimes(1);
@@ -44,12 +44,12 @@ test('is possible to set input and listen for output with the template syntax',
4444
const sendControl = screen.getByRole('button', { name: /send/i });
4545
const valueControl = screen.getByTestId('value');
4646

47-
expect(valueControl.textContent).toBe('47');
47+
expect(valueControl).toHaveTextContent('47');
4848

4949
fireEvent.click(incrementControl);
5050
fireEvent.click(incrementControl);
5151
fireEvent.click(incrementControl);
52-
expect(valueControl.textContent).toBe('50');
52+
expect(valueControl).toHaveTextContent('50');
5353

5454
fireEvent.click(sendControl);
5555
expect(sendSpy).toHaveBeenCalledTimes(1);

‎apps/example-app/src/app/examples/05-component-provider.spec.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ test('renders the current value and can increment and decrement', async () => {
1818
const decrementControl = screen.getByRole('button', { name: /decrement/i });
1919
const valueControl = screen.getByTestId('value');
2020

21-
expect(valueControl.textContent).toBe('0');
21+
expect(valueControl).toHaveTextContent('0');
2222

2323
fireEvent.click(incrementControl);
2424
fireEvent.click(incrementControl);
25-
expect(valueControl.textContent).toBe('2');
25+
expect(valueControl).toHaveTextContent('2');
2626

2727
fireEvent.click(decrementControl);
28-
expect(valueControl.textContent).toBe('1');
28+
expect(valueControl).toHaveTextContent('1');
2929
});
3030

3131
test('renders the current value and can increment and decrement with a mocked jest-utils service', async () => {
@@ -48,14 +48,14 @@ test('renders the current value and can increment and decrement with a mocked je
4848
const decrementControl = screen.getByRole('button', { name: /decrement/i });
4949
const valueControl = screen.getByTestId('value');
5050

51-
expect(valueControl.textContent).toBe('50');
51+
expect(valueControl).toHaveTextContent('50');
5252

5353
fireEvent.click(incrementControl);
5454
fireEvent.click(incrementControl);
55-
expect(valueControl.textContent).toBe('70');
55+
expect(valueControl).toHaveTextContent('70');
5656

5757
fireEvent.click(decrementControl);
58-
expect(valueControl.textContent).toBe('60');
58+
expect(valueControl).toHaveTextContent('60');
5959
});
6060

6161
test('renders the current value and can increment and decrement with provideMocked from jest-utils', async () => {

‎apps/example-app/src/app/examples/06-with-ngrx-store.spec.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ test('works with ngrx store', async () => {
2121
const decrementControl = screen.getByRole('button', { name: /decrement/i });
2222
const valueControl = screen.getByTestId('value');
2323

24-
expect(valueControl.textContent).toBe('0');
24+
expect(valueControl).toHaveTextContent('0');
2525

2626
fireEvent.click(incrementControl);
2727
fireEvent.click(incrementControl);
28-
expect(valueControl.textContent).toBe('20');
28+
expect(valueControl).toHaveTextContent('20');
2929

3030
fireEvent.click(decrementControl);
31-
expect(valueControl.textContent).toBe('10');
31+
expect(valueControl).toHaveTextContent('10');
3232
});

‎apps/example-app/src/app/examples/15-dialog.component.spec.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ test('closes the dialog via the backdrop', async () => {
5454
await screen.findByRole('dialog');
5555
await screen.findByRole('heading', { name: /dialogtitle/i });
5656

57+
// eslint-disable-next-line testing-library/no-node-access
5758
fireEvent.click(document.querySelector('.cdk-overlay-backdrop'));
5859

5960
await waitForElementToBeRemoved(() => screen.getByRole('dialog'));

‎apps/example-app/src/app/examples/16-input-getter-setter.spec.ts‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@ test('should run logic in the input setter and getter', async () => {
66
const valueControl = screen.getByTestId('value');
77
const getterValueControl = screen.getByTestId('value-getter');
88

9-
expect(valueControl.textContent).toBe('I am value from setter Angular');
10-
expect(getterValueControl.textContent).toBe('I am value from getter Angular');
9+
expect(valueControl).toHaveTextContent('I am value from setter Angular');
10+
expect(getterValueControl).toHaveTextContent('I am value from getter Angular');
1111
});
1212

1313
test('should run logic in the input setter and getter while re-rendering', async () => {
14-
const component = await render(InputGetterSetter, { componentProperties: { value: 'Angular' } });
14+
const { rerender } = await render(InputGetterSetter, { componentProperties: { value: 'Angular' } });
1515
const valueControl = screen.getByTestId('value');
1616
const getterValueControl = screen.getByTestId('value-getter');
1717

18-
expect(valueControl.textContent).toBe('I am value from setter Angular');
19-
expect(getterValueControl.textContent).toBe('I am value from getter Angular');
18+
expect(valueControl).toHaveTextContent('I am value from setter Angular');
19+
expect(getterValueControl).toHaveTextContent('I am value from getter Angular');
2020

21-
await component.rerender({ value: 'React' });
21+
await rerender({ value: 'React' });
2222

23-
expect(valueControl.textContent).toBe('I am value from setter React');
24-
expect(getterValueControl.textContent).toBe('I am value from getter React');
23+
expect(valueControl).toHaveTextContent('I am value from setter React');
24+
expect(getterValueControl).toHaveTextContent('I am value from getter React');
2525
});

‎apps/example-app/src/app/issues/issue-106.spec.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,23 @@ it('https://github.com/testing-library/angular-testing-library/issues/106', asyn
2020
const toggle = screen.getByTestId('toggle');
2121
const hiddenText = screen.queryByTestId('getme');
2222

23-
expect(hiddenText).toBeNull();
23+
expect(hiddenText).not.toBeInTheDocument();
2424
fireEvent.click(toggle);
2525

2626
// fails
2727
// await waitFor(() => expect(hiddenText).not.toBeNull());
2828

2929
// succeeds
30-
await waitFor(() => expect(screen.queryByTestId('getme')).not.toBeNull());
30+
await waitFor(() => expect(screen.queryByTestId('getme')).toBeInTheDocument());
3131
});
3232

3333
it('better https://github.com/testing-library/angular-testing-library/issues/106', async () => {
3434
await render(TestSelectComponent);
3535
const toggle = screen.getByTestId('toggle');
3636
const hiddenText = screen.queryByTestId('getme');
3737

38-
expect(hiddenText).toBeNull();
38+
expect(hiddenText).not.toBeInTheDocument();
3939
fireEvent.click(toggle);
4040

41-
screen.getByTestId('getme');
41+
expect(screen.getByTestId('getme')).toBeInTheDocument();
4242
});

‎apps/example-app/tsconfig.spec.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"compilerOptions": {
44
"outDir": "../../dist/out-tsc",
55
"module": "commonjs",
6-
"types": ["jest", "node"]
6+
"types": ["jest", "node", "@testing-library/jest-dom"]
77
},
88
"files": ["src/test-setup.ts"],
99
"include": ["**/*.spec.ts", "**/*.d.ts"]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /