Skip to content

Commit 82d0f80

Browse files
committed
e2e/acceptance/dashboard: Migrate from mirage to @crates-io/msw
1 parent 66454ed commit 82d0f80

File tree

1 file changed

+41
-37
lines changed

1 file changed

+41
-37
lines changed

e2e/acceptance/dashboard.spec.ts

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { test, expect } from '@/e2e/helper';
1+
import { expect, test } from '@/e2e/helper';
2+
import { http, HttpResponse } from 'msw';
23

34
test.describe('Acceptance | Dashboard', { tag: '@acceptance' }, () => {
45
test('shows "page requires authentication" error when not logged in', async ({ page }) => {
@@ -8,44 +9,47 @@ test.describe('Acceptance | Dashboard', { tag: '@acceptance' }, () => {
89
await expect(page.locator('[data-test-login]')).toBeVisible();
910
});
1011

11-
test('shows the dashboard when logged in', async ({ page, mirage, percy }) => {
12-
await mirage.addHook(server => {
13-
let user = server.create('user', {
14-
login: 'johnnydee',
15-
name: 'John Doe',
16-
17-
avatar: 'https://avatars2.githubusercontent.com/u/1234567?v=4',
18-
});
19-
20-
authenticateAs(user);
21-
22-
{
23-
let crate = server.create('crate', { name: 'rand' });
24-
server.create('version', { crate, num: '0.5.0' });
25-
server.create('version', { crate, num: '0.6.0' });
26-
server.create('version', { crate, num: '0.7.0' });
27-
server.create('version', { crate, num: '0.7.1' });
28-
server.create('version', { crate, num: '0.7.2' });
29-
server.create('version', { crate, num: '0.7.3' });
30-
server.create('version', { crate, num: '0.8.0' });
31-
server.create('version', { crate, num: '0.8.1' });
32-
server.create('version', { crate, num: '0.9.0' });
33-
server.create('version', { crate, num: '1.0.0' });
34-
server.create('version', { crate, num: '1.1.0' });
35-
user.followedCrates.add(crate);
36-
}
37-
38-
{
39-
let crate = server.create('crate', { name: 'nanomsg' });
40-
server.create('crate-ownership', { crate, user });
41-
server.create('version', { crate, num: '0.1.0' });
42-
user.followedCrates.add(crate);
43-
}
12+
test('shows the dashboard when logged in', async ({ page, msw, percy }) => {
13+
let user = msw.db.user.create({
14+
login: 'johnnydee',
15+
name: 'John Doe',
16+
17+
avatar: 'https://avatars2.githubusercontent.com/u/1234567?v=4',
18+
});
4419

45-
user.save();
20+
msw.authenticateAs(user);
21+
22+
{
23+
let crate = msw.db.crate.create({ name: 'rand' });
24+
msw.db.version.create({ crate, num: '0.5.0' });
25+
msw.db.version.create({ crate, num: '0.6.0' });
26+
msw.db.version.create({ crate, num: '0.7.0' });
27+
msw.db.version.create({ crate, num: '0.7.1' });
28+
msw.db.version.create({ crate, num: '0.7.2' });
29+
msw.db.version.create({ crate, num: '0.7.3' });
30+
msw.db.version.create({ crate, num: '0.8.0' });
31+
msw.db.version.create({ crate, num: '0.8.1' });
32+
msw.db.version.create({ crate, num: '0.9.0' });
33+
msw.db.version.create({ crate, num: '1.0.0' });
34+
msw.db.version.create({ crate, num: '1.1.0' });
35+
user = msw.db.user.update({
36+
where: { id: { equals: user.id } },
37+
data: { followedCrates: [...user.followedCrates, crate] },
38+
});
39+
}
40+
41+
{
42+
let crate = msw.db.crate.create({ name: 'nanomsg' });
43+
msw.db.crateOwnership.create({ crate, user });
44+
msw.db.version.create({ crate, num: '0.1.0' });
45+
user = msw.db.user.update({
46+
where: { id: { equals: user.id } },
47+
data: { followedCrates: [...user.followedCrates, crate] },
48+
});
49+
}
4650

47-
server.get(`/api/v1/users/${user.id}/stats`, { total_downloads: 3892 });
48-
});
51+
let response = HttpResponse.json({ total_downloads: 3892 });
52+
await msw.worker.use(http.get(`/api/v1/users/${user.id}/stats`, () => response));
4953

5054
await page.goto('/dashboard');
5155
await expect(page).toHaveURL('/dashboard');

0 commit comments

Comments
 (0)