1- import { test , expect } from '@/e2e/helper' ;
1+ import { expect , test } from '@/e2e/helper' ;
2+ import { http , HttpResponse } from 'msw' ;
23
34test . describe ( 'Acceptance | api-tokens' , { tag : '@acceptance' } , ( ) => {
4- test . beforeEach ( async ( { mirage } ) => {
5- await mirage . addHook ( server => {
6- let user = server . create ( 'user' , {
7- login : 'johnnydee' ,
8- name : 'John Doe' ,
9- 10- avatar : 'https://avatars2.githubusercontent.com/u/1234567?v=4' ,
11- } ) ;
12- server . create ( 'api-token' , {
13- user,
14- name : 'BAR' ,
15- createdAt : '2017-11-19T17:59:22' ,
16- lastUsedAt : null ,
17- expiredAt : '2017-12-19T17:59:22' ,
18- } ) ;
19-
20- server . create ( 'api-token' , {
21- user,
22- name : 'recently expired' ,
23- createdAt : '2017-08-01T12:34:56' ,
24- lastUsedAt : '2017-11-02T01:45:14' ,
25- expiredAt : '2017-11-19T17:59:22' ,
26- } ) ;
27- server . create ( 'api-token' , {
28- user,
29- name : 'foo' ,
30- createdAt : '2017-08-01T12:34:56' ,
31- lastUsedAt : '2017-11-02T01:45:14' ,
32- } ) ;
33-
34- globalThis . authenticateAs ( user ) ;
5+ test . beforeEach ( async ( { msw } ) => {
6+ let user = msw . db . user . create ( {
7+ login : 'johnnydee' ,
8+ name : 'John Doe' ,
9+ 10+ avatar : 'https://avatars2.githubusercontent.com/u/1234567?v=4' ,
3511 } ) ;
12+ msw . db . apiToken . create ( {
13+ user,
14+ name : 'BAR' ,
15+ createdAt : '2017-11-19T17:59:22' ,
16+ lastUsedAt : null ,
17+ expiredAt : '2017-12-19T17:59:22' ,
18+ } ) ;
19+
20+ msw . db . apiToken . create ( {
21+ user,
22+ name : 'recently expired' ,
23+ createdAt : '2017-08-01T12:34:56' ,
24+ lastUsedAt : '2017-11-02T01:45:14' ,
25+ expiredAt : '2017-11-19T17:59:22' ,
26+ } ) ;
27+ msw . db . apiToken . create ( {
28+ user,
29+ name : 'foo' ,
30+ createdAt : '2017-08-01T12:34:56' ,
31+ lastUsedAt : '2017-11-02T01:45:14' ,
32+ } ) ;
33+
34+ await msw . authenticateAs ( user ) ;
3635 } ) ;
3736
3837 test ( '/me is showing the list of active API tokens' , async ( { page } ) => {
@@ -72,16 +71,13 @@ test.describe('Acceptance | api-tokens', { tag: '@acceptance' }, () => {
7271 await expect ( row3 . locator ( '[data-test-token]' ) ) . toHaveCount ( 0 ) ;
7372 } ) ;
7473
75- test ( 'API tokens can be revoked' , async ( { page } ) => {
74+ test ( 'API tokens can be revoked' , async ( { page, msw } ) => {
7675 await page . goto ( '/settings/tokens' ) ;
7776 await expect ( page ) . toHaveURL ( '/settings/tokens' ) ;
7877 await expect ( page . locator ( '[data-test-api-token]' ) ) . toHaveCount ( 3 ) ;
7978
8079 await page . click ( '[data-test-api-token="1"] [data-test-revoke-token-button]' ) ;
81- expect (
82- await page . evaluate ( ( ) => server . schema [ 'apiTokens' ] . all ( ) . length ) ,
83- 'API token has been deleted from the backend database' ,
84- ) . toBe ( 2 ) ;
80+ expect ( msw . db . apiToken . findMany ( { } ) . length , 'API token has been deleted from the backend database' ) . toBe ( 2 ) ;
8581
8682 await expect ( page . locator ( '[data-test-api-token]' ) ) . toHaveCount ( 2 ) ;
8783 await expect ( page . locator ( '[data-test-api-token="2"]' ) ) . toBeVisible ( ) ;
@@ -97,12 +93,10 @@ test.describe('Acceptance | api-tokens', { tag: '@acceptance' }, () => {
9793 await expect ( page ) . toHaveURL ( '/settings/tokens/new?from=1' ) ;
9894 } ) ;
9995
100- test ( 'failed API tokens revocation shows an error' , async ( { page, mirage } ) => {
101- await mirage . addHook ( server => {
102- server . delete ( '/api/v1/me/tokens/:id' , { } , 500 ) ;
103- } ) ;
96+ test ( 'failed API tokens revocation shows an error' , async ( { page, msw } ) => {
97+ await msw . worker . use ( http . delete ( '/api/v1/me/tokens/:id' , ( ) => HttpResponse . json ( { } , { status : 500 } ) ) ) ;
10498
105- await mirage . page . goto ( '/settings/tokens' ) ;
99+ await page . goto ( '/settings/tokens' ) ;
106100 await expect ( page ) . toHaveURL ( '/settings/tokens' ) ;
107101 await expect ( page . locator ( '[data-test-api-token]' ) ) . toHaveCount ( 3 ) ;
108102
@@ -115,7 +109,7 @@ test.describe('Acceptance | api-tokens', { tag: '@acceptance' }, () => {
115109 ) ;
116110 } ) ;
117111
118- test ( 'new API tokens can be created' , async ( { page, percy } ) => {
112+ test ( 'new API tokens can be created' , async ( { page, percy, msw } ) => {
119113 await page . goto ( '/settings/tokens' ) ;
120114 await expect ( page ) . toHaveURL ( '/settings/tokens' ) ;
121115 await expect ( page . locator ( '[data-test-api-token]' ) ) . toHaveCount ( 3 ) ;
@@ -129,7 +123,7 @@ test.describe('Acceptance | api-tokens', { tag: '@acceptance' }, () => {
129123
130124 await page . click ( '[data-test-generate]' ) ;
131125
132- let token = await page . evaluate ( ( ) => server . schema [ 'apiTokens' ] . findBy ( { name : 'the new token' } ) ?. token ) ;
126+ let token = msw . db . apiToken . findFirst ( { where : { name : { equals : 'the new token' } } } ) ?. token ;
133127 expect ( token , 'API token has been created in the backend database' ) . toBeTruthy ( ) ;
134128
135129 await expect ( page . locator ( '[data-test-api-token="4"] [data-test-name]' ) ) . toHaveText ( 'the new token' ) ;
@@ -140,14 +134,14 @@ test.describe('Acceptance | api-tokens', { tag: '@acceptance' }, () => {
140134 await expect ( page . locator ( '[data-test-token]' ) ) . toHaveText ( token ) ;
141135 } ) ;
142136
143- test ( 'API tokens are only visible in plaintext until the page is left' , async ( { page } ) => {
137+ test ( 'API tokens are only visible in plaintext until the page is left' , async ( { page, msw } ) => {
144138 await page . goto ( '/settings/tokens' ) ;
145139 await page . click ( '[data-test-new-token-button]' ) ;
146140 await page . fill ( '[data-test-name]' , 'the new token' ) ;
147141 await page . click ( '[data-test-scope="publish-update"]' ) ;
148142 await page . click ( '[data-test-generate]' ) ;
149143
150- let token = await page . evaluate ( ( ) => server . schema [ 'apiTokens' ] . findBy ( { name : 'the new token' } ) ?. token ) ;
144+ let token = msw . db . apiToken . findFirst ( { where : { name : { equals : 'the new token' } } } ) ?. token ;
151145 await expect ( page . locator ( '[data-test-token]' ) ) . toHaveText ( token ) ;
152146
153147 // leave the API tokens page
0 commit comments