Skip to content

Commit 1738358

Browse files
committed
e2e/routes/crate/version/model: Migrate from mirage to @crates-io/msw
1 parent 487358a commit 1738358

File tree

1 file changed

+34
-46
lines changed

1 file changed

+34
-46
lines changed

e2e/routes/crate/version/model.spec.ts

Lines changed: 34 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
import { test, expect } from '@/e2e/helper';
1+
import { expect, test } from '@/e2e/helper';
22

33
test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () => {
44
test.describe('with explicit version number in the URL', () => {
5-
test('shows yanked versions', async ({ page, mirage }) => {
6-
await mirage.addHook(server => {
7-
let crate = server.create('crate', { name: 'foo' });
8-
server.create('version', { crate, num: '1.0.0' });
9-
server.create('version', { crate, num: '1.2.3', yanked: true });
10-
server.create('version', { crate, num: '2.0.0-beta.1' });
11-
});
5+
test('shows yanked versions', 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.2.3', yanked: true });
9+
msw.db.version.create({ crate, num: '2.0.0-beta.1' });
1210

1311
await page.goto('/crates/foo/1.2.3');
1412
await expect(page).toHaveURL(`/crates/foo/1.2.3`);
@@ -20,13 +18,11 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
2018
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
2119
});
2220

23-
test('shows error page for unknown versions', async ({ page, mirage }) => {
24-
await mirage.addHook(server => {
25-
let crate = server.create('crate', { name: 'foo' });
26-
server.create('version', { crate, num: '1.0.0' });
27-
server.create('version', { crate, num: '1.2.3', yanked: true });
28-
server.create('version', { crate, num: '2.0.0-beta.1' });
29-
});
21+
test('shows error page for unknown versions', async ({ page, msw }) => {
22+
let crate = msw.db.crate.create({ name: 'foo' });
23+
msw.db.version.create({ crate, num: '1.0.0' });
24+
msw.db.version.create({ crate, num: '1.2.3', yanked: true });
25+
msw.db.version.create({ crate, num: '2.0.0-beta.1' });
3026

3127
await page.goto('/crates/foo/2.0.0');
3228
await expect(page).toHaveURL(`/crates/foo/2.0.0`);
@@ -37,14 +33,12 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
3733
});
3834
});
3935
test.describe('without version number in the URL', () => {
40-
test('defaults to the highest stable version', async ({ page, mirage }) => {
41-
await mirage.addHook(server => {
42-
let crate = server.create('crate', { name: 'foo' });
43-
server.create('version', { crate, num: '1.0.0' });
44-
server.create('version', { crate, num: '1.2.3', yanked: true });
45-
server.create('version', { crate, num: '2.0.0-beta.1' });
46-
server.create('version', { crate, num: '2.0.0' });
47-
});
36+
test('defaults to the highest stable version', async ({ page, msw }) => {
37+
let crate = msw.db.crate.create({ name: 'foo' });
38+
msw.db.version.create({ crate, num: '1.0.0' });
39+
msw.db.version.create({ crate, num: '1.2.3', yanked: true });
40+
msw.db.version.create({ crate, num: '2.0.0-beta.1' });
41+
msw.db.version.create({ crate, num: '2.0.0' });
4842

4943
await page.goto('/crates/foo');
5044
await expect(page).toHaveURL(`/crates/foo`);
@@ -56,13 +50,11 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
5650
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
5751
});
5852

59-
test('defaults to the highest stable version, even if there are higher prereleases', async ({ page, mirage }) => {
60-
await mirage.addHook(server => {
61-
let crate = server.create('crate', { name: 'foo' });
62-
server.create('version', { crate, num: '1.0.0' });
63-
server.create('version', { crate, num: '1.2.3', yanked: true });
64-
server.create('version', { crate, num: '2.0.0-beta.1' });
65-
});
53+
test('defaults to the highest stable version, even if there are higher prereleases', async ({ page, msw }) => {
54+
let crate = msw.db.crate.create({ name: 'foo' });
55+
msw.db.version.create({ crate, num: '1.0.0' });
56+
msw.db.version.create({ crate, num: '1.2.3', yanked: true });
57+
msw.db.version.create({ crate, num: '2.0.0-beta.1' });
6658

6759
await page.goto('/crates/foo');
6860
await expect(page).toHaveURL(`/crates/foo`);
@@ -74,15 +66,13 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
7466
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
7567
});
7668

77-
test('defaults to the highest not-yanked version', async ({ page, mirage }) => {
78-
await mirage.addHook(server => {
79-
let crate = server.create('crate', { name: 'foo' });
80-
server.create('version', { crate, num: '1.0.0', yanked: true });
81-
server.create('version', { crate, num: '1.2.3', yanked: true });
82-
server.create('version', { crate, num: '2.0.0-beta.1' });
83-
server.create('version', { crate, num: '2.0.0-beta.2' });
84-
server.create('version', { crate, num: '2.0.0', yanked: true });
85-
});
69+
test('defaults to the highest not-yanked version', async ({ page, msw }) => {
70+
let crate = msw.db.crate.create({ name: 'foo' });
71+
msw.db.version.create({ crate, num: '1.0.0', yanked: true });
72+
msw.db.version.create({ crate, num: '1.2.3', yanked: true });
73+
msw.db.version.create({ crate, num: '2.0.0-beta.1' });
74+
msw.db.version.create({ crate, num: '2.0.0-beta.2' });
75+
msw.db.version.create({ crate, num: '2.0.0', yanked: true });
8676

8777
await page.goto('/crates/foo');
8878
await expect(page).toHaveURL(`/crates/foo`);
@@ -94,13 +84,11 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
9484
await expect(page.locator('[data-test-notification-message]')).toHaveCount(0);
9585
});
9686

97-
test('if there are only yanked versions, it defaults to the latest version', async ({ page, mirage }) => {
98-
await mirage.addHook(server => {
99-
let crate = server.create('crate', { name: 'foo' });
100-
server.create('version', { crate, num: '1.0.0', yanked: true });
101-
server.create('version', { crate, num: '1.2.3', yanked: true });
102-
server.create('version', { crate, num: '2.0.0-beta.1', yanked: true });
103-
});
87+
test('if there are only yanked versions, it defaults to the latest version', async ({ page, msw }) => {
88+
let crate = msw.db.crate.create({ name: 'foo' });
89+
msw.db.version.create({ crate, num: '1.0.0', yanked: true });
90+
msw.db.version.create({ crate, num: '1.2.3', yanked: true });
91+
msw.db.version.create({ crate, num: '2.0.0-beta.1', yanked: true });
10492

10593
await page.goto('/crates/foo');
10694
await expect(page).toHaveURL(`/crates/foo`);

0 commit comments

Comments
 (0)