Skip to content

Commit 40265cb

Browse files
committed
e2e/acceptance/crate-dependencies: Migrate from mirage to @crates-io/msw
1 parent 3ff236f commit 40265cb

File tree

1 file changed

+33
-43
lines changed

1 file changed

+33
-43
lines changed

e2e/acceptance/crate-dependencies.spec.ts

Lines changed: 33 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { test, expect } from '@/e2e/helper';
1+
import { expect, test } from '@/e2e/helper';
2+
import { loadFixtures } from '@crates-io/msw/fixtures';
3+
import { http, HttpResponse } from 'msw';
24

35
test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, () => {
4-
test('shows the lists of dependencies', async ({ page, mirage, percy, a11y }) => {
5-
await mirage.addHook(server => {
6-
server.loadFixtures();
7-
});
6+
test('shows the lists of dependencies', async ({ page, msw, percy, a11y }) => {
7+
loadFixtures(msw.db);
88

99
await page.goto('/crates/nanomsg/dependencies');
1010
await expect(page).toHaveURL('/crates/nanomsg/0.6.1/dependencies');
@@ -18,11 +18,9 @@ test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, ()
1818
await a11y.audit();
1919
});
2020

21-
test('empty list case', async ({ page, mirage }) => {
22-
await mirage.addHook(server => {
23-
let crate = server.create('crate', { name: 'nanomsg' });
24-
server.create('version', { crate, num: '0.6.1' });
25-
});
21+
test('empty list case', async ({ page, msw }) => {
22+
let crate = msw.db.crate.create({ name: 'nanomsg' });
23+
msw.db.version.create({ crate, num: '0.6.1' });
2624

2725
await page.goto('/crates/nanomsg/dependencies');
2826

@@ -41,10 +39,8 @@ test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, ()
4139
await expect(page.locator('[data-test-try-again]')).toHaveCount(0);
4240
});
4341

44-
test('shows an error page if crate fails to load', async ({ page, mirage }) => {
45-
await mirage.addHook(server => {
46-
server.get('/api/v1/crates/:crate_name', {}, 500);
47-
});
42+
test('shows an error page if crate fails to load', async ({ page, msw }) => {
43+
await msw.worker.use(http.get('/api/v1/crates/:crate_name', () => HttpResponse.json({}, { status: 500 })));
4844

4945
await page.goto('/crates/foo/1.0.0/dependencies');
5046
await expect(page).toHaveURL('/crates/foo/1.0.0/dependencies');
@@ -54,11 +50,9 @@ test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, ()
5450
await expect(page.locator('[data-test-try-again]')).toBeVisible();
5551
});
5652

57-
test('shows an error page if version is not found', async ({ page, mirage }) => {
58-
await mirage.addHook(server => {
59-
let crate = server.create('crate', { name: 'foo' });
60-
server.create('version', { crate, num: '2.0.0' });
61-
});
53+
test('shows an error page if version is not found', async ({ page, msw }) => {
54+
let crate = msw.db.crate.create({ name: 'foo' });
55+
msw.db.version.create({ crate, num: '2.0.0' });
6256

6357
await page.goto('/crates/foo/1.0.0/dependencies');
6458
await expect(page).toHaveURL('/crates/foo/1.0.0/dependencies');
@@ -68,12 +62,10 @@ test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, ()
6862
await expect(page.locator('[data-test-try-again]')).toHaveCount(0);
6963
});
7064

71-
test('shows an error page if versions fail to load', async ({ page, mirage, ember }) => {
72-
await mirage.addHook(server => {
73-
let crate = server.create('crate', { name: 'foo' });
74-
server.create('version', { crate, num: '2.0.0' });
75-
server.get('/api/v1/crates/:crate_name/versions', {}, 500);
76-
});
65+
test('shows an error page if versions fail to load', async ({ page, msw, ember }) => {
66+
let crate = msw.db.crate.create({ name: 'foo' });
67+
msw.db.version.create({ crate, num: '2.0.0' });
68+
await msw.worker.use(http.get('/api/v1/crates/:crate_name/versions', () => HttpResponse.json({}, { status: 500 })));
7769

7870
await page.goto('/crates/foo/1.0.0/dependencies');
7971

@@ -84,13 +76,12 @@ test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, ()
8476
await expect(page.locator('[data-test-try-again]')).toBeVisible();
8577
});
8678

87-
test('shows error message if loading of dependencies fails', async ({ page, mirage }) => {
88-
await mirage.addHook(server => {
89-
let crate = server.create('crate', { name: 'foo' });
90-
server.create('version', { crate, num: '1.0.0' });
79+
test('shows error message if loading of dependencies fails', async ({ page, msw }) => {
80+
let crate = msw.db.crate.create({ name: 'foo' });
81+
msw.db.version.create({ crate, num: '1.0.0' });
9182

92-
server.get('/api/v1/crates/:crate_name/:version_num/dependencies', {}, 500);
93-
});
83+
let error = HttpResponse.json({}, { status: 500 });
84+
await msw.worker.use(http.get('/api/v1/crates/:crate_name/:version_num/dependencies', () => error));
9485

9586
await page.goto('/crates/foo/1.0.0/dependencies');
9687
await expect(page).toHaveURL('/crates/foo/1.0.0/dependencies');
@@ -100,21 +91,20 @@ test.describe('Acceptance | crate dependencies page', { tag: '@acceptance' }, ()
10091
await expect(page.locator('[data-test-try-again]')).toBeVisible();
10192
});
10293

103-
test('hides description if loading of dependency details fails', async ({ page, mirage }) => {
104-
await mirage.addHook(server => {
105-
let crate = server.create('crate', { name: 'nanomsg' });
106-
let version = server.create('version', { crate, num: '0.6.1' });
94+
test('hides description if loading of dependency details fails', async ({ page, msw }) => {
95+
let crate = msw.db.crate.create({ name: 'nanomsg' });
96+
let version = msw.db.version.create({ crate, num: '0.6.1' });
10797

108-
let foo = server.create('crate', { name: 'foo', description: 'This is the foo crate' });
109-
server.create('version', { crate: foo, num: '1.0.0' });
110-
server.create('dependency', { crate: foo, version, req: '^1.0.0', kind: 'normal' });
98+
let foo = msw.db.crate.create({ name: 'foo', description: 'This is the foo crate' });
99+
msw.db.version.create({ crate: foo, num: '1.0.0' });
100+
msw.db.dependency.create({ crate: foo, version, req: '^1.0.0', kind: 'normal' });
111101

112-
let bar = server.create('crate', { name: 'bar', description: 'This is the bar crate' });
113-
server.create('version', { crate: bar, num: '2.3.4' });
114-
server.create('dependency', { crate: bar, version, req: '^2.0.0', kind: 'normal' });
102+
let bar = msw.db.crate.create({ name: 'bar', description: 'This is the bar crate' });
103+
msw.db.version.create({ crate: bar, num: '2.3.4' });
104+
msw.db.dependency.create({ crate: bar, version, req: '^2.0.0', kind: 'normal' });
115105

116-
server.get('/api/v1/crates', {}, 500);
117-
});
106+
let error = HttpResponse.json({}, { status: 500 });
107+
await msw.worker.use(http.get('/api/v1/crates', () => error));
118108

119109
await page.goto('/crates/nanomsg/dependencies');
120110
await expect(page).toHaveURL('/crates/nanomsg/0.6.1/dependencies');

0 commit comments

Comments
 (0)