Skip to content

Commit 3d95842

Browse files
committed
e2e/acceptance/publish-notifications: Migrate from mirage to @crates-io/msw
1 parent 297ca39 commit 3d95842

File tree

1 file changed

+19
-25
lines changed

1 file changed

+19
-25
lines changed

e2e/acceptance/publish-notifications.spec.ts

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1+
import { defer } from '@/e2e/deferred';
12
import { expect, test } from '@/e2e/helper';
3+
import { http, HttpResponse } from 'msw';
24

35
test.describe('Acceptance | publish notifications', { tag: '@acceptance' }, () => {
4-
test('unsubscribe and resubscribe', async ({ page, mirage }) => {
5-
await mirage.addHook(server => {
6-
let user = server.create('user');
7-
globalThis.user = user;
8-
authenticateAs(user);
9-
});
6+
test('unsubscribe and resubscribe', async ({ page, msw }) => {
7+
let user = msw.db.user.create();
8+
msw.authenticateAs(user);
109

1110
await page.goto('/settings/profile');
1211
await expect(page).toHaveURL('/settings/profile');
@@ -16,24 +15,23 @@ test.describe('Acceptance | publish notifications', { tag: '@acceptance' }, () =
1615
await expect(page.locator('[data-test-notifications] input[type=checkbox]')).not.toBeChecked();
1716

1817
await page.click('[data-test-notifications] button');
19-
await page.waitForFunction(() => globalThis.user.reload().publishNotifications === false);
18+
user = msw.db.user.findFirst({ where: { id: { equals: user.id } } });
19+
expect(user.publishNotifications).toBe(false);
2020

2121
await page.click('[data-test-notifications] input[type=checkbox]');
2222
await expect(page.locator('[data-test-notifications] input[type=checkbox]')).toBeChecked();
2323

2424
await page.click('[data-test-notifications] button');
25-
await page.waitForFunction(() => globalThis.user.reload().publishNotifications === true);
25+
user = msw.db.user.findFirst({ where: { id: { equals: user.id } } });
26+
expect(user.publishNotifications).toBe(true);
2627
});
2728

28-
test('loading state', async ({ page, mirage }) => {
29-
await mirage.addHook(server => {
30-
let user = server.create('user');
31-
authenticateAs(user);
32-
globalThis.user = user;
29+
test('loading state', async ({ page, msw }) => {
30+
let user = msw.db.user.create();
31+
msw.authenticateAs(user);
3332

34-
globalThis.deferred = require('rsvp').defer();
35-
server.put('/api/v1/users/:user_id', globalThis.deferred.promise);
36-
});
33+
let deferred = defer();
34+
msw.worker.use(http.put('/api/v1/users/:user_id', () => deferred.promise));
3735

3836
await page.goto('/settings/profile');
3937
await expect(page).toHaveURL('/settings/profile');
@@ -44,20 +42,16 @@ test.describe('Acceptance | publish notifications', { tag: '@acceptance' }, () =
4442
await expect(page.locator('[data-test-notifications] input[type=checkbox]')).toBeDisabled();
4543
await expect(page.locator('[data-test-notifications] button')).toBeDisabled();
4644

47-
await page.evaluate(async () => globalThis.deferred.resolve());
45+
deferred.resolve();
4846
await expect(page.locator('[data-test-notifications] [data-test-spinner]')).not.toBeVisible();
4947
await expect(page.locator('[data-test-notification-message="error"]')).not.toBeVisible();
5048
});
5149

52-
test('error state', async ({ page, mirage }) => {
53-
await mirage.addHook(server => {
54-
server.logging = true;
55-
let user = server.create('user');
56-
authenticateAs(user);
57-
globalThis.user = user;
50+
test('error state', async ({ page, msw }) => {
51+
let user = msw.db.user.create();
52+
msw.authenticateAs(user);
5853

59-
server.put('/api/v1/users/:user_id', '', 500);
60-
});
54+
msw.worker.use(http.put('/api/v1/users/:user_id', () => HttpResponse.text('', { status: 500 })));
6155

6256
await page.goto('/settings/profile');
6357
await expect(page).toHaveURL('/settings/profile');

0 commit comments

Comments
 (0)