Skip to content

Commit 4f0fb09

Browse files
authored
Merge pull request #5524 from Turbo87/eslint-qunit
eslint: Add `qunit` plugin
2 parents 88df08f + 40f175d commit 4f0fb09

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+373
-349
lines changed

.eslintrc.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module.exports = {
1313
extends: [
1414
'eslint:recommended',
1515
'plugin:ember/recommended',
16+
'plugin:qunit/recommended',
1617
'plugin:qunit-dom/recommended',
1718
'plugin:unicorn/recommended',
1819
'plugin:prettier/recommended',
@@ -37,6 +38,9 @@ module.exports = {
3738
'ember-concurrency/no-perform-without-catch': 'warn',
3839
'ember-concurrency/require-task-name-suffix': 'error',
3940

41+
// disabled because of false positives in `assert.rejects()` calls
42+
'qunit/require-expect': 'off',
43+
4044
'unicorn/explicit-length-check': ['error', { 'non-zero': 'not-equal' }],
4145
// disabled because of false positives related to `EmberArray`
4246
'unicorn/no-array-for-each': 'off',

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118
"eslint-plugin-ember-concurrency": "0.5.1",
119119
"eslint-plugin-import-helpers": "1.3.1",
120120
"eslint-plugin-prettier": "4.2.1",
121+
"eslint-plugin-qunit": "7.3.3",
121122
"eslint-plugin-qunit-dom": "0.2.0",
122123
"eslint-plugin-unicorn": "45.0.0",
123124
"loader.js": "4.7.0",

pnpm-lock.yaml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/acceptance/404-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module('Acceptance | 404', function (hooks) {
1010

1111
test('/unknown-route shows a 404 page', async function (assert) {
1212
await visit('/unknown-route');
13-
assert.equal(currentURL(), '/unknown-route');
13+
assert.strictEqual(currentURL(), '/unknown-route');
1414
assert.dom('[data-test-404-page]').exists();
1515
assert.dom('[data-test-title]').hasText('Page not found');
1616
assert.dom('[data-test-go-back]').exists();

tests/acceptance/api-token-test.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module('Acceptance | api-tokens', function (hooks) {
4040
prepare(this);
4141

4242
await visit('/settings/tokens');
43-
assert.equal(currentURL(), '/settings/tokens');
43+
assert.strictEqual(currentURL(), '/settings/tokens');
4444
assert.dom('[data-test-api-token]').exists({ count: 2 });
4545

4646
let [row1, row2] = findAll('[data-test-api-token]');
@@ -67,11 +67,15 @@ module('Acceptance | api-tokens', function (hooks) {
6767
prepare(this);
6868

6969
await visit('/settings/tokens');
70-
assert.equal(currentURL(), '/settings/tokens');
70+
assert.strictEqual(currentURL(), '/settings/tokens');
7171
assert.dom('[data-test-api-token]').exists({ count: 2 });
7272

7373
await click('[data-test-api-token="1"] [data-test-revoke-token-button]');
74-
assert.equal(this.server.schema.apiTokens.all().length, 1, 'API token has been deleted from the backend database');
74+
assert.strictEqual(
75+
this.server.schema.apiTokens.all().length,
76+
1,
77+
'API token has been deleted from the backend database',
78+
);
7579

7680
assert.dom('[data-test-api-token]').exists({ count: 1 });
7781
assert.dom('[data-test-api-token="2"]').exists();
@@ -86,7 +90,7 @@ module('Acceptance | api-tokens', function (hooks) {
8690
});
8791

8892
await visit('/settings/tokens');
89-
assert.equal(currentURL(), '/settings/tokens');
93+
assert.strictEqual(currentURL(), '/settings/tokens');
9094
assert.dom('[data-test-api-token]').exists({ count: 2 });
9195

9296
await click('[data-test-api-token="1"] [data-test-revoke-token-button]');
@@ -100,7 +104,7 @@ module('Acceptance | api-tokens', function (hooks) {
100104
prepare(this);
101105

102106
await visit('/settings/tokens');
103-
assert.equal(currentURL(), '/settings/tokens');
107+
assert.strictEqual(currentURL(), '/settings/tokens');
104108
assert.dom('[data-test-api-token]').exists({ count: 2 });
105109
assert.dom('[data-test-focused-input]').doesNotExist();
106110
assert.dom('[data-test-save-token-button]').doesNotExist();

tests/acceptance/crate-dependencies-test.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ module('Acceptance | crate dependencies page', function (hooks) {
1717
this.server.loadFixtures();
1818

1919
await visit('/crates/nanomsg/dependencies');
20-
assert.equal(currentURL(), '/crates/nanomsg/0.6.1/dependencies');
21-
assert.equal(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
20+
assert.strictEqual(currentURL(), '/crates/nanomsg/0.6.1/dependencies');
21+
assert.strictEqual(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
2222

2323
assert.dom('[data-test-dependencies] li').exists({ count: 2 });
2424
assert.dom('[data-test-build-dependencies] li').exists({ count: 1 });
@@ -42,7 +42,7 @@ module('Acceptance | crate dependencies page', function (hooks) {
4242

4343
test('shows an error page if crate not found', async function (assert) {
4444
await visit('/crates/foo/1.0.0/dependencies');
45-
assert.equal(currentURL(), '/crates/foo/1.0.0/dependencies');
45+
assert.strictEqual(currentURL(), '/crates/foo/1.0.0/dependencies');
4646
assert.dom('[data-test-404-page]').exists();
4747
assert.dom('[data-test-title]').hasText('foo: Crate not found');
4848
assert.dom('[data-test-go-back]').exists();
@@ -53,7 +53,7 @@ module('Acceptance | crate dependencies page', function (hooks) {
5353
this.server.get('/api/v1/crates/:crate_name', {}, 500);
5454

5555
await visit('/crates/foo/1.0.0/dependencies');
56-
assert.equal(currentURL(), '/crates/foo/1.0.0/dependencies');
56+
assert.strictEqual(currentURL(), '/crates/foo/1.0.0/dependencies');
5757
assert.dom('[data-test-404-page]').exists();
5858
assert.dom('[data-test-title]').hasText('foo: Failed to load crate data');
5959
assert.dom('[data-test-go-back]').doesNotExist();
@@ -65,7 +65,7 @@ module('Acceptance | crate dependencies page', function (hooks) {
6565
this.server.create('version', { crate, num: '2.0.0' });
6666

6767
await visit('/crates/foo/1.0.0/dependencies');
68-
assert.equal(currentURL(), '/crates/foo/1.0.0/dependencies');
68+
assert.strictEqual(currentURL(), '/crates/foo/1.0.0/dependencies');
6969
assert.dom('[data-test-404-page]').exists();
7070
assert.dom('[data-test-title]').hasText('foo: Version 1.0.0 not found');
7171
assert.dom('[data-test-go-back]').exists();
@@ -85,7 +85,7 @@ module('Acceptance | crate dependencies page', function (hooks) {
8585
versions.forEach(record => record.unloadRecord());
8686

8787
await visit('/crates/foo/1.0.0/dependencies');
88-
assert.equal(currentURL(), '/crates/foo/1.0.0/dependencies');
88+
assert.strictEqual(currentURL(), '/crates/foo/1.0.0/dependencies');
8989
assert.dom('[data-test-404-page]').exists();
9090
assert.dom('[data-test-title]').hasText('foo: Failed to load version data');
9191
assert.dom('[data-test-go-back]').doesNotExist();
@@ -99,7 +99,7 @@ module('Acceptance | crate dependencies page', function (hooks) {
9999
this.server.get('/api/v1/crates/:crate_name/:version_num/dependencies', {}, 500);
100100

101101
await visit('/crates/foo/1.0.0/dependencies');
102-
assert.equal(currentURL(), '/crates/foo/1.0.0/dependencies');
102+
assert.strictEqual(currentURL(), '/crates/foo/1.0.0/dependencies');
103103
assert.dom('[data-test-404-page]').exists();
104104
assert.dom('[data-test-title]').hasText('foo: Failed to load dependencies');
105105
assert.dom('[data-test-go-back]').doesNotExist();
@@ -121,7 +121,7 @@ module('Acceptance | crate dependencies page', function (hooks) {
121121
this.server.get('/api/v1/crates', {}, 500);
122122

123123
await visit('/crates/nanomsg/dependencies');
124-
assert.equal(currentURL(), '/crates/nanomsg/0.6.1/dependencies');
124+
assert.strictEqual(currentURL(), '/crates/nanomsg/0.6.1/dependencies');
125125

126126
assert.dom('[data-test-dependencies] li').exists({ count: 2 });
127127

tests/acceptance/crate-navtabs-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module('Acceptance | crate navigation tabs', function (hooks) {
1717
this.server.create('version', { crate, num: '0.6.1' });
1818

1919
await visit('/crates/nanomsg');
20-
assert.equal(currentURL(), '/crates/nanomsg');
20+
assert.strictEqual(currentURL(), '/crates/nanomsg');
2121

2222
assert.dom(TAB_README).hasAttribute('href', '/crates/nanomsg').hasAttribute('data-test-active');
2323
assert.dom(TAB_VERSIONS).hasAttribute('href', '/crates/nanomsg/versions').hasNoAttribute('data-test-active');
@@ -29,7 +29,7 @@ module('Acceptance | crate navigation tabs', function (hooks) {
2929
assert.dom(TAB_SETTINGS).doesNotExist();
3030

3131
await click(TAB_VERSIONS);
32-
assert.equal(currentURL(), '/crates/nanomsg/versions');
32+
assert.strictEqual(currentURL(), '/crates/nanomsg/versions');
3333

3434
assert.dom(TAB_README).hasAttribute('href', '/crates/nanomsg').hasNoAttribute('data-test-active');
3535
assert.dom(TAB_VERSIONS).hasAttribute('href', '/crates/nanomsg/versions').hasAttribute('data-test-active');
@@ -41,7 +41,7 @@ module('Acceptance | crate navigation tabs', function (hooks) {
4141
assert.dom(TAB_SETTINGS).doesNotExist();
4242

4343
await click(TAB_DEPS);
44-
assert.equal(currentURL(), '/crates/nanomsg/0.6.1/dependencies');
44+
assert.strictEqual(currentURL(), '/crates/nanomsg/0.6.1/dependencies');
4545

4646
assert.dom(TAB_README).hasAttribute('href', '/crates/nanomsg/0.6.1').hasNoAttribute('data-test-active');
4747
assert.dom(TAB_VERSIONS).hasAttribute('href', '/crates/nanomsg/versions').hasNoAttribute('data-test-active');
@@ -53,7 +53,7 @@ module('Acceptance | crate navigation tabs', function (hooks) {
5353
assert.dom(TAB_SETTINGS).doesNotExist();
5454

5555
await click(TAB_REV_DEPS);
56-
assert.equal(currentURL(), '/crates/nanomsg/reverse_dependencies');
56+
assert.strictEqual(currentURL(), '/crates/nanomsg/reverse_dependencies');
5757

5858
assert.dom(TAB_README).hasAttribute('href', '/crates/nanomsg').hasNoAttribute('data-test-active');
5959
assert.dom(TAB_VERSIONS).hasAttribute('href', '/crates/nanomsg/versions').hasNoAttribute('data-test-active');

tests/acceptance/crate-test.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ module('Acceptance | crate page', function (hooks) {
2020
await visit('/');
2121
await click('[data-test-just-updated] [data-test-crate-link="0"]');
2222

23-
assert.equal(currentURL(), '/crates/nanomsg');
24-
assert.equal(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
23+
assert.strictEqual(currentURL(), '/crates/nanomsg');
24+
assert.strictEqual(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
2525

2626
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
2727
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('v0.6.1');
@@ -34,9 +34,9 @@ module('Acceptance | crate page', function (hooks) {
3434

3535
await visit('/crates/nanomsg');
3636

37-
assert.equal(currentURL(), '/crates/nanomsg');
38-
assert.equal(currentRouteName(), 'crate.index');
39-
assert.equal(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
37+
assert.strictEqual(currentURL(), '/crates/nanomsg');
38+
assert.strictEqual(currentRouteName(), 'crate.index');
39+
assert.strictEqual(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
4040

4141
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
4242
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('v0.6.1');
@@ -53,9 +53,9 @@ module('Acceptance | crate page', function (hooks) {
5353

5454
await visit('/crates/nanomsg/');
5555

56-
assert.equal(currentURL(), '/crates/nanomsg/');
57-
assert.equal(currentRouteName(), 'crate.index');
58-
assert.equal(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
56+
assert.strictEqual(currentURL(), '/crates/nanomsg/');
57+
assert.strictEqual(currentRouteName(), 'crate.index');
58+
assert.strictEqual(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
5959

6060
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
6161
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('v0.6.1');
@@ -69,9 +69,9 @@ module('Acceptance | crate page', function (hooks) {
6969

7070
await visit('/crates/nanomsg/0.6.0');
7171

72-
assert.equal(currentURL(), '/crates/nanomsg/0.6.0');
73-
assert.equal(currentRouteName(), 'crate.version');
74-
assert.equal(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
72+
assert.strictEqual(currentURL(), '/crates/nanomsg/0.6.0');
73+
assert.strictEqual(currentRouteName(), 'crate.version');
74+
assert.strictEqual(getPageTitle(), 'nanomsg - crates.io: Rust Package Registry');
7575

7676
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
7777
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('v0.6.0');
@@ -83,7 +83,7 @@ module('Acceptance | crate page', function (hooks) {
8383

8484
test('unknown crate shows an error message', async function (assert) {
8585
await visit('/crates/nanomsg');
86-
assert.equal(currentURL(), '/crates/nanomsg');
86+
assert.strictEqual(currentURL(), '/crates/nanomsg');
8787
assert.dom('[data-test-404-page]').exists();
8888
assert.dom('[data-test-title]').hasText('nanomsg: Crate not found');
8989
assert.dom('[data-test-go-back]').exists();
@@ -94,7 +94,7 @@ module('Acceptance | crate page', function (hooks) {
9494
this.server.get('/api/v1/crates/:crate_name', {}, 500);
9595

9696
await visit('/crates/nanomsg');
97-
assert.equal(currentURL(), '/crates/nanomsg');
97+
assert.strictEqual(currentURL(), '/crates/nanomsg');
9898
assert.dom('[data-test-404-page]').exists();
9999
assert.dom('[data-test-title]').hasText('nanomsg: Failed to load crate data');
100100
assert.dom('[data-test-go-back]').doesNotExist();
@@ -108,7 +108,7 @@ module('Acceptance | crate page', function (hooks) {
108108

109109
await visit('/crates/nanomsg/0.7.0');
110110

111-
assert.equal(currentURL(), '/crates/nanomsg/0.7.0');
111+
assert.strictEqual(currentURL(), '/crates/nanomsg/0.7.0');
112112
assert.dom('[data-test-404-page]').exists();
113113
assert.dom('[data-test-title]').hasText('nanomsg: Version 0.7.0 not found');
114114
assert.dom('[data-test-go-back]').exists();
@@ -124,7 +124,7 @@ module('Acceptance | crate page', function (hooks) {
124124

125125
await visit('/');
126126
await click('[data-test-just-updated] [data-test-crate-link="0"]');
127-
assert.equal(currentURL(), '/crates/nanomsg');
127+
assert.strictEqual(currentURL(), '/crates/nanomsg');
128128
assert.dom('[data-test-404-page]').exists();
129129
assert.dom('[data-test-title]').hasText('nanomsg: Failed to load version data');
130130
assert.dom('[data-test-go-back]').doesNotExist();
@@ -146,7 +146,7 @@ module('Acceptance | crate page', function (hooks) {
146146
await visit('/crates/nanomsg');
147147
await click('[data-test-rev-deps-tab] a');
148148

149-
assert.equal(currentURL(), '/crates/nanomsg/reverse_dependencies');
149+
assert.strictEqual(currentURL(), '/crates/nanomsg/reverse_dependencies');
150150
assert.dom('a[href="/crates/unicorn-rpc"]').hasText('unicorn-rpc');
151151
});
152152

@@ -156,7 +156,7 @@ module('Acceptance | crate page', function (hooks) {
156156
await visit('/crates/nanomsg');
157157
await click('[data-test-owners] [data-test-owner-link="blabaere"]');
158158

159-
assert.equal(currentURL(), '/users/blabaere');
159+
assert.strictEqual(currentURL(), '/users/blabaere');
160160
assert.dom('[data-test-heading] [data-test-username]').hasText('blabaere');
161161
});
162162

@@ -166,7 +166,7 @@ module('Acceptance | crate page', function (hooks) {
166166
await visit('/crates/nanomsg');
167167
await click('[data-test-owners] [data-test-owner-link="github:org:thehydroimpulse"]');
168168

169-
assert.equal(currentURL(), '/teams/github:org:thehydroimpulse');
169+
assert.strictEqual(currentURL(), '/teams/github:org:thehydroimpulse');
170170
assert.dom('[data-test-heading] [data-test-team-name]').hasText('thehydroimpulseteam');
171171
});
172172

@@ -248,6 +248,6 @@ module('Acceptance | crate page', function (hooks) {
248248
await visit('/crates/nanomsg');
249249
await click('[data-test-settings-tab] a');
250250

251-
assert.equal(currentURL(), '/crates/nanomsg/settings');
251+
assert.strictEqual(currentURL(), '/crates/nanomsg/settings');
252252
});
253253
});

tests/acceptance/crates-test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ module('Acceptance | crates page', function (hooks) {
2121
await visit('/');
2222
await click('[data-test-all-crates-link]');
2323

24-
assert.equal(currentURL(), '/crates');
25-
assert.equal(getPageTitle(), 'Crates - crates.io: Rust Package Registry');
24+
assert.strictEqual(currentURL(), '/crates');
25+
assert.strictEqual(getPageTitle(), 'Crates - crates.io: Rust Package Registry');
2626

2727
await percySnapshot(assert);
2828
await a11yAudit(axeConfig);
@@ -34,8 +34,8 @@ module('Acceptance | crates page', function (hooks) {
3434
await visit('/crates');
3535
await click('[data-test-all-crates-link]');
3636

37-
assert.equal(currentURL(), '/crates');
38-
assert.equal(getPageTitle(), 'Crates - crates.io: Rust Package Registry');
37+
assert.strictEqual(currentURL(), '/crates');
38+
assert.strictEqual(getPageTitle(), 'Crates - crates.io: Rust Package Registry');
3939
});
4040

4141
test('listing crates', async function (assert) {
@@ -61,7 +61,7 @@ module('Acceptance | crates page', function (hooks) {
6161
await visit('/crates');
6262
await click('[data-test-pagination-next]');
6363

64-
assert.equal(currentURL(), '/crates?page=2');
64+
assert.strictEqual(currentURL(), '/crates?page=2');
6565
assert.dom('[data-test-crates-nav] [data-test-current-rows]').hasText(`${page_start}-${total}`);
6666
assert.dom('[data-test-crates-nav] [data-test-total-rows]').hasText(`${total}`);
6767
});

tests/acceptance/dashboard-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module('Acceptance | Dashboard', function (hooks) {
1212

1313
test('shows "page requires authentication" error when not logged in', async function (assert) {
1414
await visit('/dashboard');
15-
assert.equal(currentURL(), '/dashboard');
15+
assert.strictEqual(currentURL(), '/dashboard');
1616
assert.dom('[data-test-title]').hasText('This page requires authentication');
1717
assert.dom('[data-test-login]').exists();
1818
});
@@ -55,7 +55,7 @@ module('Acceptance | Dashboard', function (hooks) {
5555
this.server.get(`/api/v1/users/${user.id}/stats`, { total_downloads: 3892 });
5656

5757
await visit('/dashboard');
58-
assert.equal(currentURL(), '/dashboard');
58+
assert.strictEqual(currentURL(), '/dashboard');
5959
await percySnapshot(assert);
6060
});
6161
});

0 commit comments

Comments
 (0)