1- import { test , expect } from '@/e2e/helper' ;
1+ import { expect , test } from '@/e2e/helper' ;
22
33test . describe ( 'Route | crate.version | model() hook' , { tag : '@routes' } , ( ) => {
44 test . describe ( 'with explicit version number in the URL' , ( ) => {
5- test ( 'shows yanked versions' , async ( { page, mirage } ) => {
6- await mirage . addHook ( server => {
7- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
8- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
9- server . create ( 'version' , { crate, num : '1.2.3' , yanked : true } ) ;
10- server . create ( 'version' , { crate, num : '2.0.0-beta.1' } ) ;
11- } ) ;
5+ test ( 'shows yanked versions' , 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.2.3' , yanked : true } ) ;
9+ msw . db . version . create ( { crate, num : '2.0.0-beta.1' } ) ;
1210
1311 await page . goto ( '/crates/foo/1.2.3' ) ;
1412 await expect ( page ) . toHaveURL ( `/crates/foo/1.2.3` ) ;
@@ -20,13 +18,11 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
2018 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
2119 } ) ;
2220
23- test ( 'shows error page for unknown versions' , async ( { page, mirage } ) => {
24- await mirage . addHook ( server => {
25- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
26- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
27- server . create ( 'version' , { crate, num : '1.2.3' , yanked : true } ) ;
28- server . create ( 'version' , { crate, num : '2.0.0-beta.1' } ) ;
29- } ) ;
21+ test ( 'shows error page for unknown versions' , async ( { page, msw } ) => {
22+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
23+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
24+ msw . db . version . create ( { crate, num : '1.2.3' , yanked : true } ) ;
25+ msw . db . version . create ( { crate, num : '2.0.0-beta.1' } ) ;
3026
3127 await page . goto ( '/crates/foo/2.0.0' ) ;
3228 await expect ( page ) . toHaveURL ( `/crates/foo/2.0.0` ) ;
@@ -37,14 +33,12 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
3733 } ) ;
3834 } ) ;
3935 test . describe ( 'without version number in the URL' , ( ) => {
40- test ( 'defaults to the highest stable version' , async ( { page, mirage } ) => {
41- await mirage . addHook ( server => {
42- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
43- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
44- server . create ( 'version' , { crate, num : '1.2.3' , yanked : true } ) ;
45- server . create ( 'version' , { crate, num : '2.0.0-beta.1' } ) ;
46- server . create ( 'version' , { crate, num : '2.0.0' } ) ;
47- } ) ;
36+ test ( 'defaults to the highest stable version' , async ( { page, msw } ) => {
37+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
38+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
39+ msw . db . version . create ( { crate, num : '1.2.3' , yanked : true } ) ;
40+ msw . db . version . create ( { crate, num : '2.0.0-beta.1' } ) ;
41+ msw . db . version . create ( { crate, num : '2.0.0' } ) ;
4842
4943 await page . goto ( '/crates/foo' ) ;
5044 await expect ( page ) . toHaveURL ( `/crates/foo` ) ;
@@ -56,13 +50,11 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
5650 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
5751 } ) ;
5852
59- test ( 'defaults to the highest stable version, even if there are higher prereleases' , async ( { page, mirage } ) => {
60- await mirage . addHook ( server => {
61- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
62- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
63- server . create ( 'version' , { crate, num : '1.2.3' , yanked : true } ) ;
64- server . create ( 'version' , { crate, num : '2.0.0-beta.1' } ) ;
65- } ) ;
53+ test ( 'defaults to the highest stable version, even if there are higher prereleases' , async ( { page, msw } ) => {
54+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
55+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
56+ msw . db . version . create ( { crate, num : '1.2.3' , yanked : true } ) ;
57+ msw . db . version . create ( { crate, num : '2.0.0-beta.1' } ) ;
6658
6759 await page . goto ( '/crates/foo' ) ;
6860 await expect ( page ) . toHaveURL ( `/crates/foo` ) ;
@@ -74,15 +66,13 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
7466 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
7567 } ) ;
7668
77- test ( 'defaults to the highest not-yanked version' , async ( { page, mirage } ) => {
78- await mirage . addHook ( server => {
79- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
80- server . create ( 'version' , { crate, num : '1.0.0' , yanked : true } ) ;
81- server . create ( 'version' , { crate, num : '1.2.3' , yanked : true } ) ;
82- server . create ( 'version' , { crate, num : '2.0.0-beta.1' } ) ;
83- server . create ( 'version' , { crate, num : '2.0.0-beta.2' } ) ;
84- server . create ( 'version' , { crate, num : '2.0.0' , yanked : true } ) ;
85- } ) ;
69+ test ( 'defaults to the highest not-yanked version' , async ( { page, msw } ) => {
70+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
71+ msw . db . version . create ( { crate, num : '1.0.0' , yanked : true } ) ;
72+ msw . db . version . create ( { crate, num : '1.2.3' , yanked : true } ) ;
73+ msw . db . version . create ( { crate, num : '2.0.0-beta.1' } ) ;
74+ msw . db . version . create ( { crate, num : '2.0.0-beta.2' } ) ;
75+ msw . db . version . create ( { crate, num : '2.0.0' , yanked : true } ) ;
8676
8777 await page . goto ( '/crates/foo' ) ;
8878 await expect ( page ) . toHaveURL ( `/crates/foo` ) ;
@@ -94,13 +84,11 @@ test.describe('Route | crate.version | model() hook', { tag: '@routes' }, () =>
9484 await expect ( page . locator ( '[data-test-notification-message]' ) ) . toHaveCount ( 0 ) ;
9585 } ) ;
9686
97- test ( 'if there are only yanked versions, it defaults to the latest version' , async ( { page, mirage } ) => {
98- await mirage . addHook ( server => {
99- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
100- server . create ( 'version' , { crate, num : '1.0.0' , yanked : true } ) ;
101- server . create ( 'version' , { crate, num : '1.2.3' , yanked : true } ) ;
102- server . create ( 'version' , { crate, num : '2.0.0-beta.1' , yanked : true } ) ;
103- } ) ;
87+ test ( 'if there are only yanked versions, it defaults to the latest version' , async ( { page, msw } ) => {
88+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
89+ msw . db . version . create ( { crate, num : '1.0.0' , yanked : true } ) ;
90+ msw . db . version . create ( { crate, num : '1.2.3' , yanked : true } ) ;
91+ msw . db . version . create ( { crate, num : '2.0.0-beta.1' , yanked : true } ) ;
10492
10593 await page . goto ( '/crates/foo' ) ;
10694 await expect ( page ) . toHaveURL ( `/crates/foo` ) ;
0 commit comments