11import { currentURL } from '@ember/test-helpers' ;
22import { module , test } from 'qunit' ;
33
4+ import { http , HttpResponse } from 'msw' ;
5+
46import { setupApplicationTest } from 'crates-io/tests/helpers' ;
57
68import { visit } from '../../helpers/visit-ignoring-abort' ;
79
810module ( 'Route | crate.range' , function ( hooks ) {
9- setupApplicationTest ( hooks ) ;
11+ setupApplicationTest ( hooks , { msw : true } ) ;
1012
1113 test ( 'happy path' , async function ( assert ) {
12- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
13- this . server . create ( 'version' , { crate, num : '1.0.0' } ) ;
14- this . server . create ( 'version' , { crate, num : '1.1.0' } ) ;
15- this . server . create ( 'version' , { crate, num : '1.2.0' } ) ;
16- this . server . create ( 'version' , { crate, num : '1.2.3' } ) ;
14+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
15+ this . db . version . create ( { crate, num : '1.0.0' } ) ;
16+ this . db . version . create ( { crate, num : '1.1.0' } ) ;
17+ this . db . version . create ( { crate, num : '1.2.0' } ) ;
18+ this . db . version . create ( { crate, num : '1.2.3' } ) ;
1719
1820 await visit ( '/crates/foo/range/^1.1.0' ) ;
1921 assert . strictEqual ( currentURL ( ) , `/crates/foo/1.2.3` ) ;
@@ -23,11 +25,11 @@ module('Route | crate.range', function (hooks) {
2325 } ) ;
2426
2527 test ( 'happy path with tilde range' , async function ( assert ) {
26- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
27- this . server . create ( 'version' , { crate, num : '1.0.0' } ) ;
28- this . server . create ( 'version' , { crate, num : '1.1.0' } ) ;
29- this . server . create ( 'version' , { crate, num : '1.1.1' } ) ;
30- this . server . create ( 'version' , { crate, num : '1.2.0' } ) ;
28+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
29+ this . db . version . create ( { crate, num : '1.0.0' } ) ;
30+ this . db . version . create ( { crate, num : '1.1.0' } ) ;
31+ this . db . version . create ( { crate, num : '1.1.1' } ) ;
32+ this . db . version . create ( { crate, num : '1.2.0' } ) ;
3133
3234 await visit ( '/crates/foo/range/~1.1.0' ) ;
3335 assert . strictEqual ( currentURL ( ) , `/crates/foo/1.1.1` ) ;
@@ -37,11 +39,11 @@ module('Route | crate.range', function (hooks) {
3739 } ) ;
3840
3941 test ( 'happy path with cargo style and' , async function ( assert ) {
40- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
41- this . server . create ( 'version' , { crate, num : '1.4.2' } ) ;
42- this . server . create ( 'version' , { crate, num : '1.3.4' } ) ;
43- this . server . create ( 'version' , { crate, num : '1.3.3' } ) ;
44- this . server . create ( 'version' , { crate, num : '1.2.6' } ) ;
42+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
43+ this . db . version . create ( { crate, num : '1.4.2' } ) ;
44+ this . db . version . create ( { crate, num : '1.3.4' } ) ;
45+ this . db . version . create ( { crate, num : '1.3.3' } ) ;
46+ this . db . version . create ( { crate, num : '1.2.6' } ) ;
4547
4648 await visit ( '/crates/foo/range/>=1.3.0, <1.4.0' ) ;
4749 assert . strictEqual ( currentURL ( ) , `/crates/foo/1.3.4` ) ;
@@ -51,11 +53,11 @@ module('Route | crate.range', function (hooks) {
5153 } ) ;
5254
5355 test ( 'ignores yanked versions if possible' , async function ( assert ) {
54- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
55- this . server . create ( 'version' , { crate, num : '1.0.0' } ) ;
56- this . server . create ( 'version' , { crate, num : '1.1.0' } ) ;
57- this . server . create ( 'version' , { crate, num : '1.1.1' } ) ;
58- this . server . create ( 'version' , { crate, num : '1.2.0' , yanked : true } ) ;
56+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
57+ this . db . version . create ( { crate, num : '1.0.0' } ) ;
58+ this . db . version . create ( { crate, num : '1.1.0' } ) ;
59+ this . db . version . create ( { crate, num : '1.1.1' } ) ;
60+ this . db . version . create ( { crate, num : '1.2.0' , yanked : true } ) ;
5961
6062 await visit ( '/crates/foo/range/^1.0.0' ) ;
6163 assert . strictEqual ( currentURL ( ) , `/crates/foo/1.1.1` ) ;
@@ -65,11 +67,11 @@ module('Route | crate.range', function (hooks) {
6567 } ) ;
6668
6769 test ( 'falls back to yanked version if necessary' , async function ( assert ) {
68- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
69- this . server . create ( 'version' , { crate, num : '1.0.0' , yanked : true } ) ;
70- this . server . create ( 'version' , { crate, num : '1.1.0' , yanked : true } ) ;
71- this . server . create ( 'version' , { crate, num : '1.1.1' , yanked : true } ) ;
72- this . server . create ( 'version' , { crate, num : '2.0.0' } ) ;
70+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
71+ this . db . version . create ( { crate, num : '1.0.0' , yanked : true } ) ;
72+ this . db . version . create ( { crate, num : '1.1.0' , yanked : true } ) ;
73+ this . db . version . create ( { crate, num : '1.1.1' , yanked : true } ) ;
74+ this . db . version . create ( { crate, num : '2.0.0' } ) ;
7375
7476 await visit ( '/crates/foo/range/^1.0.0' ) ;
7577 assert . strictEqual ( currentURL ( ) , `/crates/foo/1.1.1` ) ;
@@ -88,7 +90,8 @@ module('Route | crate.range', function (hooks) {
8890 } ) ;
8991
9092 test ( 'shows an error page if crate fails to load' , async function ( assert ) {
91- this . server . get ( '/api/v1/crates/:crate_name' , { } , 500 ) ;
93+ let error = HttpResponse . json ( { } , { status : 500 } ) ;
94+ this . worker . use ( http . get ( '/api/v1/crates/:crate_name' , ( ) => error ) ) ;
9295
9396 await visit ( '/crates/foo/range/^3' ) ;
9497 assert . strictEqual ( currentURL ( ) , '/crates/foo/range/%5E3' ) ;
@@ -99,11 +102,11 @@ module('Route | crate.range', function (hooks) {
99102 } ) ;
100103
101104 test ( 'shows an error page if no match found' , async function ( assert ) {
102- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
103- this . server . create ( 'version' , { crate, num : '1.0.0' } ) ;
104- this . server . create ( 'version' , { crate, num : '1.1.0' } ) ;
105- this . server . create ( 'version' , { crate, num : '1.1.1' } ) ;
106- this . server . create ( 'version' , { crate, num : '2.0.0' } ) ;
105+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
106+ this . db . version . create ( { crate, num : '1.0.0' } ) ;
107+ this . db . version . create ( { crate, num : '1.1.0' } ) ;
108+ this . db . version . create ( { crate, num : '1.1.1' } ) ;
109+ this . db . version . create ( { crate, num : '2.0.0' } ) ;
107110
108111 await visit ( '/crates/foo/range/^3' ) ;
109112 assert . strictEqual ( currentURL ( ) , '/crates/foo/range/%5E3' ) ;
@@ -114,10 +117,11 @@ module('Route | crate.range', function (hooks) {
114117 } ) ;
115118
116119 test ( 'shows an error page if versions fail to load' , async function ( assert ) {
117- let crate = this . server . create ( 'crate' , { name : 'foo' } ) ;
118- this . server . create ( 'version' , { crate, num : '3.2.1' } ) ;
120+ let crate = this . db . crate . create ( { name : 'foo' } ) ;
121+ this . db . version . create ( { crate, num : '3.2.1' } ) ;
119122
120- this . server . get ( '/api/v1/crates/:crate_name/versions' , { } , 500 ) ;
123+ let error = HttpResponse . json ( { } , { status : 500 } ) ;
124+ this . worker . use ( http . get ( '/api/v1/crates/:crate_name/versions' , ( ) => error ) ) ;
121125
122126 await visit ( '/crates/foo/range/^3' ) ;
123127 assert . strictEqual ( currentURL ( ) , '/crates/foo/range/%5E3' ) ;
0 commit comments