Skip to content

Commit cd2b3c9

Browse files
committed
e2e/routes/crate/range: Migrate from mirage to @crates-io/msw
1 parent c486c2a commit cd2b3c9

File tree

1 file changed

+46
-60
lines changed

1 file changed

+46
-60
lines changed

e2e/routes/crate/range.spec.ts

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

34
test.describe('Route | crate.range', { tag: '@routes' }, () => {
4-
test('happy path', async ({ page, mirage }) => {
5-
await mirage.addHook(server => {
6-
let crate = server.create('crate', { name: 'foo' });
7-
server.create('version', { crate, num: '1.0.0' });
8-
server.create('version', { crate, num: '1.1.0' });
9-
server.create('version', { crate, num: '1.2.0' });
10-
server.create('version', { crate, num: '1.2.3' });
11-
});
5+
test('happy path', async ({ page, msw }) => {
6+
let crate = msw.db.crate.create({ name: 'foo' });
7+
msw.db.version.create({ crate, num: '1.0.0' });
8+
msw.db.version.create({ crate, num: '1.1.0' });
9+
msw.db.version.create({ crate, num: '1.2.0' });
10+
msw.db.version.create({ crate, num: '1.2.3' });
1211

1312
await page.goto('/crates/foo/range/^1.1.0');
1413
await expect(page).toHaveURL(`/crates/foo/1.2.3`);
@@ -17,14 +16,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
1716
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
1817
});
1918

20-
test('happy path with tilde range', async ({ page, mirage }) => {
21-
await mirage.addHook(server => {
22-
let crate = server.create('crate', { name: 'foo' });
23-
server.create('version', { crate, num: '1.0.0' });
24-
server.create('version', { crate, num: '1.1.0' });
25-
server.create('version', { crate, num: '1.1.1' });
26-
server.create('version', { crate, num: '1.2.0' });
27-
});
19+
test('happy path with tilde range', async ({ page, msw }) => {
20+
let crate = msw.db.crate.create({ name: 'foo' });
21+
msw.db.version.create({ crate, num: '1.0.0' });
22+
msw.db.version.create({ crate, num: '1.1.0' });
23+
msw.db.version.create({ crate, num: '1.1.1' });
24+
msw.db.version.create({ crate, num: '1.2.0' });
2825

2926
await page.goto('/crates/foo/range/~1.1.0');
3027
await expect(page).toHaveURL(`/crates/foo/1.1.1`);
@@ -33,14 +30,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
3330
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
3431
});
3532

36-
test('happy path with cargo style and', async ({ page, mirage }) => {
37-
await mirage.addHook(server => {
38-
let crate = server.create('crate', { name: 'foo' });
39-
server.create('version', { crate, num: '1.4.2' });
40-
server.create('version', { crate, num: '1.3.4' });
41-
server.create('version', { crate, num: '1.3.3' });
42-
server.create('version', { crate, num: '1.2.6' });
43-
});
33+
test('happy path with cargo style and', async ({ page, msw }) => {
34+
let crate = msw.db.crate.create({ name: 'foo' });
35+
msw.db.version.create({ crate, num: '1.4.2' });
36+
msw.db.version.create({ crate, num: '1.3.4' });
37+
msw.db.version.create({ crate, num: '1.3.3' });
38+
msw.db.version.create({ crate, num: '1.2.6' });
4439

4540
await page.goto('/crates/foo/range/>=1.3.0, <1.4.0');
4641
await expect(page).toHaveURL(`/crates/foo/1.3.4`);
@@ -49,14 +44,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
4944
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
5045
});
5146

52-
test('ignores yanked versions if possible', async ({ page, mirage }) => {
53-
await mirage.addHook(server => {
54-
let crate = server.create('crate', { name: 'foo' });
55-
server.create('version', { crate, num: '1.0.0' });
56-
server.create('version', { crate, num: '1.1.0' });
57-
server.create('version', { crate, num: '1.1.1' });
58-
server.create('version', { crate, num: '1.2.0', yanked: true });
59-
});
47+
test('ignores yanked versions if possible', async ({ page, msw }) => {
48+
let crate = msw.db.crate.create({ name: 'foo' });
49+
msw.db.version.create({ crate, num: '1.0.0' });
50+
msw.db.version.create({ crate, num: '1.1.0' });
51+
msw.db.version.create({ crate, num: '1.1.1' });
52+
msw.db.version.create({ crate, num: '1.2.0', yanked: true });
6053

6154
await page.goto('/crates/foo/range/^1.0.0');
6255
await expect(page).toHaveURL(`/crates/foo/1.1.1`);
@@ -65,14 +58,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
6558
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
6659
});
6760

68-
test('falls back to yanked version if necessary', async ({ page, mirage }) => {
69-
await mirage.addHook(server => {
70-
let crate = server.create('crate', { name: 'foo' });
71-
server.create('version', { crate, num: '1.0.0', yanked: true });
72-
server.create('version', { crate, num: '1.1.0', yanked: true });
73-
server.create('version', { crate, num: '1.1.1', yanked: true });
74-
server.create('version', { crate, num: '2.0.0' });
75-
});
61+
test('falls back to yanked version if necessary', async ({ page, msw }) => {
62+
let crate = msw.db.crate.create({ name: 'foo' });
63+
msw.db.version.create({ crate, num: '1.0.0', yanked: true });
64+
msw.db.version.create({ crate, num: '1.1.0', yanked: true });
65+
msw.db.version.create({ crate, num: '1.1.1', yanked: true });
66+
msw.db.version.create({ crate, num: '2.0.0' });
7667

7768
await page.goto('/crates/foo/range/^1.0.0');
7869
await expect(page).toHaveURL(`/crates/foo/1.1.1`);
@@ -81,7 +72,7 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
8172
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
8273
});
8374

84-
test('shows an error page if crate not found', async ({ page, mirage }) => {
75+
test('shows an error page if crate not found', async ({ page }) => {
8576
await page.goto('/crates/foo/range/^3');
8677
await expect(page).toHaveURL('/crates/foo/range/%5E3');
8778
await expect(page.locator('[data-test-404-page]')).toBeVisible();
@@ -90,10 +81,8 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
9081
await expect(page.locator('[data-test-try-again]')).toHaveCount(0);
9182
});
9283

93-
test('shows an error page if crate fails to load', async ({ page, mirage }) => {
94-
await mirage.addHook(server => {
95-
server.get('/api/v1/crates/:crate_name', {}, 500);
96-
});
84+
test('shows an error page if crate fails to load', async ({ page, msw }) => {
85+
msw.worker.use(http.get('/api/v1/crates/:crate_name', () => HttpResponse.json({}, { status: 500 })));
9786

9887
await page.goto('/crates/foo/range/^3');
9988
await expect(page).toHaveURL('/crates/foo/range/%5E3');
@@ -103,14 +92,13 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
10392
await expect(page.locator('[data-test-try-again]')).toBeVisible();
10493
});
10594

106-
test('shows an error page if no match found', async ({ page, mirage }) => {
107-
await mirage.addHook(server => {
108-
let crate = server.create('crate', { name: 'foo' });
109-
server.create('version', { crate, num: '1.0.0' });
110-
server.create('version', { crate, num: '1.1.0' });
111-
server.create('version', { crate, num: '1.1.1' });
112-
server.create('version', { crate, num: '2.0.0' });
113-
});
95+
test('shows an error page if no match found', async ({ page, msw }) => {
96+
let crate = msw.db.crate.create({ name: 'foo' });
97+
msw.db.version.create({ crate, num: '1.0.0' });
98+
msw.db.version.create({ crate, num: '1.1.0' });
99+
msw.db.version.create({ crate, num: '1.1.1' });
100+
msw.db.version.create({ crate, num: '2.0.0' });
101+
114102
await page.goto('/crates/foo/range/^3');
115103
await expect(page).toHaveURL('/crates/foo/range/%5E3');
116104
await expect(page.locator('[data-test-404-page]')).toBeVisible();
@@ -119,13 +107,11 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
119107
await expect(page.locator('[data-test-try-again]')).toHaveCount(0);
120108
});
121109

122-
test('shows an error page if versions fail to load', async ({ page, mirage, ember }) => {
123-
await mirage.addHook(server => {
124-
let crate = server.create('crate', { name: 'foo' });
125-
server.create('version', { crate, num: '3.2.1' });
110+
test('shows an error page if versions fail to load', async ({ page, msw }) => {
111+
let crate = msw.db.crate.create({ name: 'foo' });
112+
msw.db.version.create({ crate, num: '3.2.1' });
126113

127-
server.get('/api/v1/crates/:crate_name/versions', {}, 500);
128-
});
114+
msw.worker.use(http.get('/api/v1/crates/:crate_name/versions', () => HttpResponse.json({}, { status: 500 })));
129115

130116
await page.goto('/crates/foo/range/^3');
131117
await expect(page).toHaveURL('/crates/foo/range/%5E3');

0 commit comments

Comments
 (0)