1- import { test , expect } from '@/e2e/helper' ;
1+ import { expect , test } from '@/e2e/helper' ;
2+ import { http , HttpResponse } from 'msw' ;
23
34test . describe ( 'Acceptance | Dashboard' , { tag : '@acceptance' } , ( ) => {
45 test ( 'shows "page requires authentication" error when not logged in' , async ( { page } ) => {
@@ -8,44 +9,47 @@ test.describe('Acceptance | Dashboard', { tag: '@acceptance' }, () => {
89 await expect ( page . locator ( '[data-test-login]' ) ) . toBeVisible ( ) ;
910 } ) ;
1011
11- test ( 'shows the dashboard when logged in' , async ( { page, mirage, percy } ) => {
12- await mirage . addHook ( server => {
13- let user = server . create ( 'user' , {
14- login : 'johnnydee' ,
15- name : 'John Doe' ,
16- 17- avatar : 'https://avatars2.githubusercontent.com/u/1234567?v=4' ,
18- } ) ;
19-
20- authenticateAs ( user ) ;
21-
22- {
23- let crate = server . create ( 'crate' , { name : 'rand' } ) ;
24- server . create ( 'version' , { crate, num : '0.5.0' } ) ;
25- server . create ( 'version' , { crate, num : '0.6.0' } ) ;
26- server . create ( 'version' , { crate, num : '0.7.0' } ) ;
27- server . create ( 'version' , { crate, num : '0.7.1' } ) ;
28- server . create ( 'version' , { crate, num : '0.7.2' } ) ;
29- server . create ( 'version' , { crate, num : '0.7.3' } ) ;
30- server . create ( 'version' , { crate, num : '0.8.0' } ) ;
31- server . create ( 'version' , { crate, num : '0.8.1' } ) ;
32- server . create ( 'version' , { crate, num : '0.9.0' } ) ;
33- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
34- server . create ( 'version' , { crate, num : '1.1.0' } ) ;
35- user . followedCrates . add ( crate ) ;
36- }
37-
38- {
39- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
40- server . create ( 'crate-ownership' , { crate, user } ) ;
41- server . create ( 'version' , { crate, num : '0.1.0' } ) ;
42- user . followedCrates . add ( crate ) ;
43- }
12+ test ( 'shows the dashboard when logged in' , async ( { page, msw, percy } ) => {
13+ let user = msw . db . user . create ( {
14+ login : 'johnnydee' ,
15+ name : 'John Doe' ,
16+ 17+ avatar : 'https://avatars2.githubusercontent.com/u/1234567?v=4' ,
18+ } ) ;
4419
45- user . save ( ) ;
20+ await msw . authenticateAs ( user ) ;
21+
22+ {
23+ let crate = msw . db . crate . create ( { name : 'rand' } ) ;
24+ msw . db . version . create ( { crate, num : '0.5.0' } ) ;
25+ msw . db . version . create ( { crate, num : '0.6.0' } ) ;
26+ msw . db . version . create ( { crate, num : '0.7.0' } ) ;
27+ msw . db . version . create ( { crate, num : '0.7.1' } ) ;
28+ msw . db . version . create ( { crate, num : '0.7.2' } ) ;
29+ msw . db . version . create ( { crate, num : '0.7.3' } ) ;
30+ msw . db . version . create ( { crate, num : '0.8.0' } ) ;
31+ msw . db . version . create ( { crate, num : '0.8.1' } ) ;
32+ msw . db . version . create ( { crate, num : '0.9.0' } ) ;
33+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
34+ msw . db . version . create ( { crate, num : '1.1.0' } ) ;
35+ user = msw . db . user . update ( {
36+ where : { id : { equals : user . id } } ,
37+ data : { followedCrates : [ ...user . followedCrates , crate ] } ,
38+ } ) ;
39+ }
40+
41+ {
42+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
43+ msw . db . crateOwnership . create ( { crate, user } ) ;
44+ msw . db . version . create ( { crate, num : '0.1.0' } ) ;
45+ user = msw . db . user . update ( {
46+ where : { id : { equals : user . id } } ,
47+ data : { followedCrates : [ ...user . followedCrates , crate ] } ,
48+ } ) ;
49+ }
4650
47- server . get ( `/api/v1/users/ ${ user . id } /stats` , { total_downloads : 3892 } ) ;
48- } ) ;
51+ let response = HttpResponse . json ( { total_downloads : 3892 } ) ;
52+ await msw . worker . use ( http . get ( `/api/v1/users/ ${ user . id } /stats` , ( ) => response ) ) ;
4953
5054 await page . goto ( '/dashboard' ) ;
5155 await expect ( page ) . toHaveURL ( '/dashboard' ) ;
0 commit comments