11import { expect , test } from '@/e2e/helper' ;
2+ import { loadFixtures } from '@crates-io/msw/fixtures' ;
3+ import { http , HttpResponse } from 'msw' ;
24
35test . describe ( 'Acceptance | crate page' , { tag : '@acceptance' } , ( ) => {
4- test ( 'visiting a crate page from the front page' , async ( { page, mirage } ) => {
5- await mirage . addHook ( server => {
6- let crate = server . create ( 'crate' , { name : 'nanomsg' , newest_version : '0.6.1' } ) ;
7- server . create ( 'version' , { crate, num : '0.6.1' } ) ;
8- } ) ;
6+ test ( 'visiting a crate page from the front page' , async ( { page, msw } ) => {
7+ let crate = msw . db . crate . create ( { name : 'nanomsg' , newest_version : '0.6.1' } ) ;
8+ msw . db . version . create ( { crate, num : '0.6.1' } ) ;
99
1010 await page . goto ( '/' ) ;
1111 await page . click ( '[data-test-just-updated] [data-test-crate-link="0"]' ) ;
@@ -17,12 +17,10 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
1717 await expect ( page . locator ( '[data-test-heading] [data-test-crate-version]' ) ) . toHaveText ( 'v0.6.1' ) ;
1818 } ) ;
1919
20- test ( 'visiting /crates/nanomsg' , async ( { page, mirage, ember, percy, a11y } ) => {
21- await mirage . addHook ( server => {
22- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
23- server . create ( 'version' , { crate, num : '0.6.0' } ) ;
24- server . create ( 'version' , { crate, num : '0.6.1' , rust_version : '1.69' } ) ;
25- } ) ;
20+ test ( 'visiting /crates/nanomsg' , async ( { page, msw, ember, percy, a11y } ) => {
21+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
22+ msw . db . version . create ( { crate, num : '0.6.0' } ) ;
23+ msw . db . version . create ( { crate, num : '0.6.1' , rust_version : '1.69' } ) ;
2624
2725 await page . goto ( '/crates/nanomsg' ) ;
2826
@@ -40,12 +38,10 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
4038 await a11y . audit ( ) ;
4139 } ) ;
4240
43- test ( 'visiting /crates/nanomsg/' , async ( { page, mirage, ember } ) => {
44- await mirage . addHook ( server => {
45- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
46- server . create ( 'version' , { crate, num : '0.6.0' } ) ;
47- server . create ( 'version' , { crate, num : '0.6.1' } ) ;
48- } ) ;
41+ test ( 'visiting /crates/nanomsg/' , async ( { page, msw, ember } ) => {
42+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
43+ msw . db . version . create ( { crate, num : '0.6.0' } ) ;
44+ msw . db . version . create ( { crate, num : '0.6.1' } ) ;
4945
5046 await page . goto ( '/crates/nanomsg/' ) ;
5147
@@ -60,12 +56,10 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
6056 await expect ( page . locator ( '[data-test-crate-stats-label]' ) ) . toHaveText ( 'Stats Overview' ) ;
6157 } ) ;
6258
63- test ( 'visiting /crates/nanomsg/0.6.0' , async ( { page, mirage, ember, percy, a11y } ) => {
64- await mirage . addHook ( server => {
65- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
66- server . create ( 'version' , { crate, num : '0.6.0' } ) ;
67- server . create ( 'version' , { crate, num : '0.6.1' } ) ;
68- } ) ;
59+ test ( 'visiting /crates/nanomsg/0.6.0' , async ( { page, msw, ember, percy, a11y } ) => {
60+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
61+ msw . db . version . create ( { crate, num : '0.6.0' } ) ;
62+ msw . db . version . create ( { crate, num : '0.6.1' } ) ;
6963
7064 await page . goto ( '/crates/nanomsg/0.6.0' ) ;
7165
@@ -105,12 +99,10 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
10599 await expect ( page . locator ( '[data-test-try-again]' ) ) . toBeVisible ( ) ;
106100 } ) ;
107101
108- test ( 'unknown versions fall back to latest version and show an error message' , async ( { page, mirage } ) => {
109- await mirage . addHook ( server => {
110- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
111- server . create ( 'version' , { crate, num : '0.6.0' } ) ;
112- server . create ( 'version' , { crate, num : '0.6.1' } ) ;
113- } ) ;
102+ test ( 'unknown versions fall back to latest version and show an error message' , async ( { page, msw } ) => {
103+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
104+ msw . db . version . create ( { crate, num : '0.6.0' } ) ;
105+ msw . db . version . create ( { crate, num : '0.6.1' } ) ;
114106
115107 await page . goto ( '/crates/nanomsg/0.7.0' ) ;
116108
@@ -121,14 +113,12 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
121113 await expect ( page . locator ( '[data-test-try-again]' ) ) . toHaveCount ( 0 ) ;
122114 } ) ;
123115
124- test ( 'other versions loading error shows an error message' , async ( { page, mirage } ) => {
125- await mirage . addHook ( server => {
126- let crate = server . create ( 'crate' , { name : 'nanomsg' } ) ;
127- server . create ( 'version' , { crate, num : '0.6.0' } ) ;
128- server . create ( 'version' , { crate, num : '0.6.1' } ) ;
116+ test ( 'other versions loading error shows an error message' , async ( { page, msw } ) => {
117+ let crate = msw . db . crate . create ( { name : 'nanomsg' } ) ;
118+ msw . db . version . create ( { crate, num : '0.6.0' } ) ;
119+ msw . db . version . create ( { crate, num : '0.6.1' } ) ;
129120
130- server . get ( '/api/v1/crates/:crate_name/versions' , { } , 500 ) ;
131- } ) ;
121+ await msw . worker . use ( http . get ( '/api/v1/crates/:crate_name/versions' , ( ) => HttpResponse . json ( { } , { status : 500 } ) ) ) ;
132122
133123 await page . goto ( '/' ) ;
134124 await page . click ( '[data-test-just-updated] [data-test-crate-link="0"]' ) ;
@@ -139,11 +129,9 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
139129 await expect ( page . locator ( '[data-test-try-again]' ) ) . toBeVisible ( ) ;
140130 } ) ;
141131
142- test ( 'works for non-canonical names' , async ( { page, mirage } ) => {
143- await mirage . addHook ( server => {
144- let crate = server . create ( 'crate' , { name : 'foo-bar' } ) ;
145- server . create ( 'version' , { crate } ) ;
146- } ) ;
132+ test ( 'works for non-canonical names' , async ( { page, msw } ) => {
133+ let crate = msw . db . crate . create ( { name : 'foo-bar' } ) ;
134+ msw . db . version . create ( { crate } ) ;
147135
148136 await page . goto ( '/crates/foo_bar' ) ;
149137
@@ -153,10 +141,8 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
153141 await expect ( page . locator ( '[data-test-heading] [data-test-crate-name]' ) ) . toHaveText ( 'foo-bar' ) ;
154142 } ) ;
155143
156- test ( 'navigating to the all versions page' , async ( { page, mirage } ) => {
157- await mirage . addHook ( server => {
158- server . loadFixtures ( ) ;
159- } ) ;
144+ test ( 'navigating to the all versions page' , async ( { page, msw } ) => {
145+ loadFixtures ( msw . db ) ;
160146
161147 await page . goto ( '/crates/nanomsg' ) ;
162148 await page . click ( '[data-test-versions-tab] a' ) ;
@@ -239,13 +225,11 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
239225 await expect ( page . locator ( '[data-test-license]' ) ) . toHaveText ( 'MIT OR Apache-2.0' ) ;
240226 } ) ;
241227
242- test . skip ( 'crates can be yanked by owner' , async ( { page, mirage } ) => {
243- await mirage . addHook ( server => {
244- server . loadFixtures ( ) ;
228+ test . skip ( 'crates can be yanked by owner' , async ( { page, msw } ) => {
229+ loadFixtures ( msw . db ) ;
245230
246- let user = server . schema [ 'users' ] . findBy ( { login : 'thehydroimpulse' } ) ;
247- authenticateAs ( user ) ;
248- } ) ;
231+ let user = msw . db . user . findFirst ( { where : { login : { equals : 'thehydroimpulse' } } } ) ;
232+ await msw . authenticateAs ( user ) ;
249233
250234 await page . goto ( '/crates/nanomsg/0.5.0' ) ;
251235 const yankButton = page . locator ( '[data-test-version-yank-button="0.5.0"]' ) ;
@@ -261,36 +245,30 @@ test.describe('Acceptance | crate page', { tag: '@acceptance' }, () => {
261245 await expect ( yankButton ) . toBeVisible ( ) ;
262246 } ) ;
263247
264- test ( 'navigating to the owners page when not logged in' , async ( { page, mirage } ) => {
265- await mirage . addHook ( server => {
266- server . loadFixtures ( ) ;
267- } ) ;
248+ test ( 'navigating to the owners page when not logged in' , async ( { page, msw } ) => {
249+ loadFixtures ( msw . db ) ;
268250
269251 await page . goto ( '/crates/nanomsg' ) ;
270252
271253 await expect ( page . locator ( '[data-test-settings-tab]' ) ) . toHaveCount ( 0 ) ;
272254 } ) ;
273255
274- test ( 'navigating to the owners page when not an owner' , async ( { page, mirage } ) => {
275- await mirage . addHook ( server => {
276- server . loadFixtures ( ) ;
256+ test ( 'navigating to the owners page when not an owner' , async ( { page, msw } ) => {
257+ loadFixtures ( msw . db ) ;
277258
278- let user = server . schema [ 'users' ] . findBy ( { login : 'iain8' } ) ;
279- authenticateAs ( user ) ;
280- } ) ;
259+ let user = msw . db . user . findFirst ( { where : { login : { equals : 'iain8' } } } ) ;
260+ await msw . authenticateAs ( user ) ;
281261
282262 await page . goto ( '/crates/nanomsg' ) ;
283263
284264 await expect ( page . locator ( '[data-test-settings-tab]' ) ) . toHaveCount ( 0 ) ;
285265 } ) ;
286266
287- test ( 'navigating to the settings page' , async ( { page, mirage } ) => {
288- await mirage . addHook ( server => {
289- server . loadFixtures ( ) ;
267+ test ( 'navigating to the settings page' , async ( { page, msw } ) => {
268+ loadFixtures ( msw . db ) ;
290269
291- let user = server . schema [ 'users' ] . findBy ( { login : 'thehydroimpulse' } ) ;
292- authenticateAs ( user ) ;
293- } ) ;
270+ let user = msw . db . user . findFirst ( { where : { login : { equals : 'thehydroimpulse' } } } ) ;
271+ await msw . authenticateAs ( user ) ;
294272
295273 await page . goto ( '/crates/nanomsg' ) ;
296274 await page . click ( '[data-test-settings-tab] a' ) ;
0 commit comments