1- import { test , expect } from '@/e2e/helper' ;
1+ import { expect , test } from '@/e2e/helper' ;
2+ import { http , HttpResponse } from 'msw' ;
23
34test . describe ( 'Route | crate.range' , { tag : '@routes' } , ( ) => {
4- test ( 'happy path' , async ( { page, mirage } ) => {
5- await mirage . addHook ( server => {
6- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
7- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
8- server . create ( 'version' , { crate, num : '1.1.0' } ) ;
9- server . create ( 'version' , { crate, num : '1.2.0' } ) ;
10- server . create ( 'version' , { crate, num : '1.2.3' } ) ;
11- } ) ;
5+ test ( 'happy path' , async ( { page, msw } ) => {
6+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
7+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
8+ msw . db . version . create ( { crate, num : '1.1.0' } ) ;
9+ msw . db . version . create ( { crate, num : '1.2.0' } ) ;
10+ msw . db . version . create ( { crate, num : '1.2.3' } ) ;
1211
1312 await page . goto ( '/crates/foo/range/^1.1.0' ) ;
1413 await expect ( page ) . toHaveURL ( `/crates/foo/1.2.3` ) ;
@@ -17,14 +16,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
1716 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
1817 } ) ;
1918
20- test ( 'happy path with tilde range' , async ( { page, mirage } ) => {
21- await mirage . addHook ( server => {
22- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
23- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
24- server . create ( 'version' , { crate, num : '1.1.0' } ) ;
25- server . create ( 'version' , { crate, num : '1.1.1' } ) ;
26- server . create ( 'version' , { crate, num : '1.2.0' } ) ;
27- } ) ;
19+ test ( 'happy path with tilde range' , async ( { page, msw } ) => {
20+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
21+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
22+ msw . db . version . create ( { crate, num : '1.1.0' } ) ;
23+ msw . db . version . create ( { crate, num : '1.1.1' } ) ;
24+ msw . db . version . create ( { crate, num : '1.2.0' } ) ;
2825
2926 await page . goto ( '/crates/foo/range/~1.1.0' ) ;
3027 await expect ( page ) . toHaveURL ( `/crates/foo/1.1.1` ) ;
@@ -33,14 +30,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
3330 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
3431 } ) ;
3532
36- test ( 'happy path with cargo style and' , async ( { page, mirage } ) => {
37- await mirage . addHook ( server => {
38- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
39- server . create ( 'version' , { crate, num : '1.4.2' } ) ;
40- server . create ( 'version' , { crate, num : '1.3.4' } ) ;
41- server . create ( 'version' , { crate, num : '1.3.3' } ) ;
42- server . create ( 'version' , { crate, num : '1.2.6' } ) ;
43- } ) ;
33+ test ( 'happy path with cargo style and' , async ( { page, msw } ) => {
34+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
35+ msw . db . version . create ( { crate, num : '1.4.2' } ) ;
36+ msw . db . version . create ( { crate, num : '1.3.4' } ) ;
37+ msw . db . version . create ( { crate, num : '1.3.3' } ) ;
38+ msw . db . version . create ( { crate, num : '1.2.6' } ) ;
4439
4540 await page . goto ( '/crates/foo/range/>=1.3.0, <1.4.0' ) ;
4641 await expect ( page ) . toHaveURL ( `/crates/foo/1.3.4` ) ;
@@ -49,14 +44,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
4944 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
5045 } ) ;
5146
52- test ( 'ignores yanked versions if possible' , async ( { page, mirage } ) => {
53- await mirage . addHook ( server => {
54- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
55- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
56- server . create ( 'version' , { crate, num : '1.1.0' } ) ;
57- server . create ( 'version' , { crate, num : '1.1.1' } ) ;
58- server . create ( 'version' , { crate, num : '1.2.0' , yanked : true } ) ;
59- } ) ;
47+ test ( 'ignores yanked versions if possible' , async ( { page, msw } ) => {
48+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
49+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
50+ msw . db . version . create ( { crate, num : '1.1.0' } ) ;
51+ msw . db . version . create ( { crate, num : '1.1.1' } ) ;
52+ msw . db . version . create ( { crate, num : '1.2.0' , yanked : true } ) ;
6053
6154 await page . goto ( '/crates/foo/range/^1.0.0' ) ;
6255 await expect ( page ) . toHaveURL ( `/crates/foo/1.1.1` ) ;
@@ -65,14 +58,12 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
6558 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
6659 } ) ;
6760
68- test ( 'falls back to yanked version if necessary' , async ( { page, mirage } ) => {
69- await mirage . addHook ( server => {
70- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
71- server . create ( 'version' , { crate, num : '1.0.0' , yanked : true } ) ;
72- server . create ( 'version' , { crate, num : '1.1.0' , yanked : true } ) ;
73- server . create ( 'version' , { crate, num : '1.1.1' , yanked : true } ) ;
74- server . create ( 'version' , { crate, num : '2.0.0' } ) ;
75- } ) ;
61+ test ( 'falls back to yanked version if necessary' , async ( { page, msw } ) => {
62+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
63+ msw . db . version . create ( { crate, num : '1.0.0' , yanked : true } ) ;
64+ msw . db . version . create ( { crate, num : '1.1.0' , yanked : true } ) ;
65+ msw . db . version . create ( { crate, num : '1.1.1' , yanked : true } ) ;
66+ msw . db . version . create ( { crate, num : '2.0.0' } ) ;
7667
7768 await page . goto ( '/crates/foo/range/^1.0.0' ) ;
7869 await expect ( page ) . toHaveURL ( `/crates/foo/1.1.1` ) ;
@@ -81,7 +72,7 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
8172 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
8273 } ) ;
8374
84- test ( 'shows an error page if crate not found' , async ( { page, mirage } ) => {
75+ test ( 'shows an error page if crate not found' , async ( { page } ) => {
8576 await page . goto ( '/crates/foo/range/^3' ) ;
8677 await expect ( page ) . toHaveURL ( '/crates/foo/range/%5E3' ) ;
8778 await expect ( page . locator ( '[data-test-404-page]' ) ) . toBeVisible ( ) ;
@@ -90,10 +81,8 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
9081 await expect ( page . locator ( '[data-test-try-again]' ) ) . toHaveCount ( 0 ) ;
9182 } ) ;
9283
93- test ( 'shows an error page if crate fails to load' , async ( { page, mirage } ) => {
94- await mirage . addHook ( server => {
95- server . get ( '/api/v1/crates/:crate_name' , { } , 500 ) ;
96- } ) ;
84+ test ( 'shows an error page if crate fails to load' , async ( { page, msw } ) => {
85+ msw . worker . use ( http . get ( '/api/v1/crates/:crate_name' , ( ) => HttpResponse . json ( { } , { status : 500 } ) ) ) ;
9786
9887 await page . goto ( '/crates/foo/range/^3' ) ;
9988 await expect ( page ) . toHaveURL ( '/crates/foo/range/%5E3' ) ;
@@ -103,14 +92,13 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
10392 await expect ( page . locator ( '[data-test-try-again]' ) ) . toBeVisible ( ) ;
10493 } ) ;
10594
106- test ( 'shows an error page if no match found' , async ( { page, mirage } ) => {
107- await mirage . addHook ( server => {
108- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
109- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
110- server . create ( 'version' , { crate, num : '1.1.0' } ) ;
111- server . create ( 'version' , { crate, num : '1.1.1' } ) ;
112- server . create ( 'version' , { crate, num : '2.0.0' } ) ;
113- } ) ;
95+ test ( 'shows an error page if no match found' , async ( { page, msw } ) => {
96+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
97+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
98+ msw . db . version . create ( { crate, num : '1.1.0' } ) ;
99+ msw . db . version . create ( { crate, num : '1.1.1' } ) ;
100+ msw . db . version . create ( { crate, num : '2.0.0' } ) ;
101+
114102 await page . goto ( '/crates/foo/range/^3' ) ;
115103 await expect ( page ) . toHaveURL ( '/crates/foo/range/%5E3' ) ;
116104 await expect ( page . locator ( '[data-test-404-page]' ) ) . toBeVisible ( ) ;
@@ -119,13 +107,11 @@ test.describe('Route | crate.range', { tag: '@routes' }, () => {
119107 await expect ( page . locator ( '[data-test-try-again]' ) ) . toHaveCount ( 0 ) ;
120108 } ) ;
121109
122- test ( 'shows an error page if versions fail to load' , async ( { page, mirage, ember } ) => {
123- await mirage . addHook ( server => {
124- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
125- server . create ( 'version' , { crate, num : '3.2.1' } ) ;
110+ test ( 'shows an error page if versions fail to load' , async ( { page, msw } ) => {
111+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
112+ msw . db . version . create ( { crate, num : '3.2.1' } ) ;
126113
127- server . get ( '/api/v1/crates/:crate_name/versions' , { } , 500 ) ;
128- } ) ;
114+ msw . worker . use ( http . get ( '/api/v1/crates/:crate_name/versions' , ( ) => HttpResponse . json ( { } , { status : 500 } ) ) ) ;
129115
130116 await page . goto ( '/crates/foo/range/^3' ) ;
131117 await expect ( page ) . toHaveURL ( '/crates/foo/range/%5E3' ) ;
0 commit comments