1- import { test , expect } from '@/e2e/helper' ;
1+ import { expect , test } from '@/e2e/helper' ;
2+ import { http , HttpResponse } from 'msw' ;
23
34test . describe ( 'Acceptance | Settings | Remove Owner' , { tag : '@acceptance' } , ( ) => {
4- test . beforeEach ( async ( { page, mirage } ) => {
5- await page . addInitScript ( ( ) => {
6- globalThis . crate = { name : 'nanomsg' } ;
7- } ) ;
8- await mirage . addHook ( server => {
9- let user1 = server . create ( 'user' , { name : 'blabaere' } ) ;
10- let user2 = server . create ( 'user' , { name : 'thehydroimpulse' } ) ;
11- let team1 = server . create ( 'team' , { org : 'org' , name : 'blabaere' } ) ;
12- let team2 = server . create ( 'team' , { org : 'org' , name : 'thehydroimpulse' } ) ;
13-
14- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
15- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
16- server . create ( 'crate-ownership' , { crate, user : user1 } ) ;
17- server . create ( 'crate-ownership' , { crate, user : user2 } ) ;
18- server . create ( 'crate-ownership' , { crate, team : team1 } ) ;
19- server . create ( 'crate-ownership' , { crate, team : team2 } ) ;
20-
21- authenticateAs ( user1 ) ;
22-
23- globalThis . crate = crate ;
24- globalThis . user2 = user2 ;
25- globalThis . team1 = team1 ;
26- } ) ;
5+ let user1 , user2 , team1 , team2 , crate ;
6+
7+ test . beforeEach ( async ( { msw } ) => {
8+ user1 = msw . db . user . create ( { name : 'blabaere' } ) ;
9+ user2 = msw . db . user . create ( { name : 'thehydroimpulse' } ) ;
10+ team1 = msw . db . team . create ( { org : 'org' , name : 'blabaere' } ) ;
11+ team2 = msw . db . team . create ( { org : 'org' , name : 'thehydroimpulse' } ) ;
12+
13+ crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
14+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
15+ msw . db . crateOwnership . create ( { crate, user : user1 } ) ;
16+ msw . db . crateOwnership . create ( { crate, user : user2 } ) ;
17+ msw . db . crateOwnership . create ( { crate, team : team1 } ) ;
18+ msw . db . crateOwnership . create ( { crate, team : team2 } ) ;
19+
20+ await msw . authenticateAs ( user1 ) ;
2721 } ) ;
2822
2923 test ( 'remove a crate owner when owner is a user' , async ( { page } ) => {
@@ -36,19 +30,13 @@ test.describe('Acceptance | Settings | Remove Owner', { tag: '@acceptance' }, ()
3630 await expect ( page . locator ( '[data-test-owner-user]' ) ) . toHaveCount ( 1 ) ;
3731 } ) ;
3832
39- test ( 'remove a user crate owner (error behavior)' , async ( { page, mirage } ) => {
40- await mirage . addHook ( server => {
41- // we are intentionally returning a 200 response here, because is what
42- // the real backend also returns due to legacy reasons
43- server . delete ( '/api/v1/crates/nanomsg/owners' , { errors : [ { detail : 'nope' } ] } ) ;
44- } ) ;
45-
46- await page . goto ( 'about:blank' ) ;
47- let crate = await page . evaluate < { name : string } > ( 'crate' ) ;
33+ test ( 'remove a user crate owner (error behavior)' , async ( { page, msw } ) => {
34+ // we are intentionally returning a 200 response here, because is what
35+ // the real backend also returns due to legacy reasons
36+ let error = HttpResponse . json ( { errors : [ { detail : 'nope' } ] } ) ;
37+ await msw . worker . use ( http . delete ( '/api/v1/crates/nanomsg/owners' , ( ) => error ) ) ;
4838
4939 await page . goto ( `/crates/${ crate . name } /settings` ) ;
50-
51- const user2 = await page . evaluate ( ( ) => JSON . parse ( JSON . stringify ( user2 ) ) ) ;
5240 await page . click ( `[data-test-owner-user="${ user2 . login } "] [data-test-remove-owner-button]` ) ;
5341
5442 await expect ( page . locator ( '[data-test-notification-message="error"]' ) ) . toHaveText (
@@ -67,19 +55,13 @@ test.describe('Acceptance | Settings | Remove Owner', { tag: '@acceptance' }, ()
6755 await expect ( page . locator ( '[data-test-owner-team]' ) ) . toHaveCount ( 1 ) ;
6856 } ) ;
6957
70- test ( 'remove a team crate owner (error behavior)' , async ( { page, mirage } ) => {
71- await mirage . addHook ( server => {
72- // we are intentionally returning a 200 response here, because is what
73- // the real backend also returns due to legacy reasons
74- server . delete ( '/api/v1/crates/nanomsg/owners' , { errors : [ { detail : 'nope' } ] } ) ;
75- } ) ;
76-
77- await page . goto ( 'about:blank' ) ;
78- let crate = await page . evaluate < { name : string } > ( 'crate' ) ;
58+ test ( 'remove a team crate owner (error behavior)' , async ( { page, msw } ) => {
59+ // we are intentionally returning a 200 response here, because is what
60+ // the real backend also returns due to legacy reasons
61+ let error = HttpResponse . json ( { errors : [ { detail : 'nope' } ] } ) ;
62+ await msw . worker . use ( http . delete ( '/api/v1/crates/nanomsg/owners' , ( ) => error ) ) ;
7963
8064 await page . goto ( `/crates/${ crate . name } /settings` ) ;
81-
82- let team1 = await page . evaluate ( ( ) => JSON . parse ( JSON . stringify ( team1 ) ) ) ;
8365 await page . click ( `[data-test-owner-team="${ team1 . login } "] [data-test-remove-owner-button]` ) ;
8466
8567 await expect ( page . locator ( '[data-test-notification-message="error"]' ) ) . toHaveText (
0 commit comments