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.version | docs link' , { tag : '@routes' } , ( ) => {
4- test ( 'shows regular documentation link' , async ( { page, mirage } ) => {
5- await mirage . addHook ( server => {
6- let crate = server . create ( 'crate' , { name : 'foo' , documentation : 'https://foo.io/docs' } ) ;
7- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
8- } ) ;
5+ test ( 'shows regular documentation link' , async ( { page, msw } ) => {
6+ let crate = msw . db . crate . create ( { name : 'foo' , documentation : 'https://foo.io/docs' } ) ;
7+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
98
109 await page . goto ( '/crates/foo' ) ;
1110 await expect ( page . locator ( '[data-test-docs-link] a' ) ) . toHaveAttribute ( 'href' , 'https://foo.io/docs' ) ;
1211 } ) ;
1312
1413 test ( 'show no docs link if `documentation` is unspecified and there are no related docs.rs builds' , async ( {
1514 page,
16- mirage ,
15+ msw ,
1716 } ) => {
18- await mirage . addHook ( server => {
19- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
20- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
17+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
18+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
2119
22- server . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ' not found', 404 ) ;
23- } ) ;
20+ let error = HttpResponse . text ( ' not found', { status : 404 } ) ;
21+ msw . worker . use ( http . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ( ) => error ) ) ;
2422
2523 await page . goto ( '/crates/foo' ) ;
2624 await expect ( page . getByRole ( 'link' , { name : 'crates.io' , exact : true } ) ) . toHaveCount ( 1 ) ;
@@ -30,74 +28,69 @@ test.describe('Route | crate.version | docs link', { tag: '@routes' }, () => {
3028
3129 test ( 'show docs link if `documentation` is unspecified and there are related docs.rs builds' , async ( {
3230 page,
33- mirage ,
31+ msw ,
3432 } ) => {
35- await mirage . addHook ( server => {
36- let crate = server . create ( 'crate' , { name : 'foo' } ) ;
37- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
38-
39- server . get ( 'https://docs.rs/crate/:crate/:version/status.json' , {
40- doc_status : true ,
41- version : '1.0.0' ,
42- } ) ;
33+ let crate = msw . db . crate . create ( { name : 'foo' } ) ;
34+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
35+
36+ let response = HttpResponse . json ( {
37+ doc_status : true ,
38+ version : '1.0.0' ,
4339 } ) ;
40+ msw . worker . use ( http . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ( ) => response ) ) ;
4441
4542 await page . goto ( '/crates/foo' ) ;
4643 await expect ( page . locator ( '[data-test-docs-link] a' ) ) . toHaveAttribute ( 'href' , 'https://docs.rs/foo/1.0.0' ) ;
4744 } ) ;
4845
4946 test ( 'show original docs link if `documentation` points to docs.rs and there are no related docs.rs builds' , async ( {
5047 page,
51- mirage ,
48+ msw ,
5249 } ) => {
53- await mirage . addHook ( server => {
54- let crate = server . create ( 'crate' , { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
55- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
50+ let crate = msw . db . crate . create ( { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
51+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
5652
57- server . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ' not found', 404 ) ;
58- } ) ;
53+ let error = HttpResponse . text ( ' not found', { status : 404 } ) ;
54+ msw . worker . use ( http . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ( ) => error ) ) ;
5955
6056 await page . goto ( '/crates/foo' ) ;
6157 await expect ( page . locator ( '[data-test-docs-link] a' ) ) . toHaveAttribute ( 'href' , 'https://docs.rs/foo/0.6.2' ) ;
6258 } ) ;
6359
6460 test ( 'show updated docs link if `documentation` points to docs.rs and there are related docs.rs builds' , async ( {
6561 page,
66- mirage ,
62+ msw ,
6763 } ) => {
68- await mirage . addHook ( server => {
69- let crate = server . create ( 'crate' , { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
70- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
71-
72- server . get ( 'https://docs.rs/crate/:crate/:version/status.json' , {
73- doc_status : true ,
74- version : '1.0.0' ,
75- } ) ;
64+ let crate = msw . db . crate . create ( { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
65+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
66+
67+ let response = HttpResponse . json ( {
68+ doc_status : true ,
69+ version : '1.0.0' ,
7670 } ) ;
71+ msw . worker . use ( http . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ( ) => response ) ) ;
7772
7873 await page . goto ( '/crates/foo' ) ;
7974 await expect ( page . locator ( '[data-test-docs-link] a' ) ) . toHaveAttribute ( 'href' , 'https://docs.rs/foo/1.0.0' ) ;
8075 } ) ;
8176
82- test ( 'ajax errors are ignored' , async ( { page, mirage } ) => {
83- await mirage . addHook ( server => {
84- let crate = server . create ( 'crate' , { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
85- server . create ( 'version' , { crate, num : '1.0.0' } ) ;
77+ test ( 'ajax errors are ignored' , async ( { page, msw } ) => {
78+ let crate = msw . db . crate . create ( { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
79+ msw . db . version . create ( { crate, num : '1.0.0' } ) ;
8680
87- server . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ' error', 500 ) ;
88- } ) ;
81+ let error = HttpResponse . text ( ' error', { status : 500 } ) ;
82+ msw . worker . use ( http . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ( ) => error ) ) ;
8983
9084 await page . goto ( '/crates/foo' ) ;
9185 await expect ( page . locator ( '[data-test-docs-link] a' ) ) . toHaveAttribute ( 'href' , 'https://docs.rs/foo/0.6.2' ) ;
9286 } ) ;
9387
94- test ( 'empty docs.rs responses are ignored' , async ( { page, mirage } ) => {
95- await mirage . addHook ( server => {
96- let crate = server . create ( 'crate' , { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
97- server . create ( 'version' , { crate, num : '0.6.2' } ) ;
88+ test ( 'empty docs.rs responses are ignored' , async ( { page, msw } ) => {
89+ let crate = msw . db . crate . create ( { name : 'foo' , documentation : 'https://docs.rs/foo/0.6.2' } ) ;
90+ msw . db . version . create ( { crate, num : '0.6.2' } ) ;
9891
99- server . get ( 'https://docs.rs/crate/:crate/:version/status. json' , { } ) ;
100- } ) ;
92+ let response = HttpResponse . json ( { } ) ;
93+ msw . worker . use ( http . get ( 'https://docs.rs/crate/:crate/:version/status.json' , ( ) => response ) ) ;
10194
10295 await page . goto ( '/crates/foo' ) ;
10396 await expect ( page . locator ( '[data-test-docs-link] a' ) ) . toHaveAttribute ( 'href' , 'https://docs.rs/foo/0.6.2' ) ;
0 commit comments