File tree 2 files changed +24
-1
lines changed 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -11,7 +11,15 @@ export default class VersionRoute extends Route {
11
11
12
12
async model ( params ) {
13
13
let crate = this . modelFor ( 'crate' ) ;
14
- let versions = await crate . get ( 'versions' ) ;
14
+
15
+ let versions ;
16
+ try {
17
+ versions = await crate . get ( 'versions' ) ;
18
+ } catch {
19
+ this . notifications . error ( `Loading data for the '${ crate . name } ' crate failed. Please try again later!` ) ;
20
+ this . replaceWith ( 'index' ) ;
21
+ return ;
22
+ }
15
23
16
24
let version ;
17
25
let requestedVersion = params . version_num ;
Original file line number Diff line number Diff line change @@ -110,6 +110,21 @@ module('Acceptance | crate page', function (hooks) {
110
110
assert . dom ( '[data-test-notification-message]' ) . hasText ( "Version '0.7.0' of crate 'nanomsg' does not exist" ) ;
111
111
} ) ;
112
112
113
+ test ( 'other versions loading error shows an error message' , async function ( assert ) {
114
+ this . server . create ( 'crate' , { name : 'nanomsg' } ) ;
115
+ this . server . create ( 'version' , { crateId : 'nanomsg' , num : '0.6.0' } ) ;
116
+ this . server . create ( 'version' , { crateId : 'nanomsg' , num : '0.6.1' } ) ;
117
+
118
+ this . server . get ( '/api/v1/crates/:crate_name/versions' , { } , 500 ) ;
119
+
120
+ await visit ( '/' ) ;
121
+ await click ( '[data-test-just-updated] [data-test-crate-link="0"]' ) ;
122
+ assert . equal ( currentURL ( ) , '/' ) ;
123
+ assert
124
+ . dom ( '[data-test-notification-message]' )
125
+ . hasText ( "Loading data for the 'nanomsg' crate failed. Please try again later!" ) ;
126
+ } ) ;
127
+
113
128
test ( 'navigating to the all versions page' , async function ( assert ) {
114
129
this . server . loadFixtures ( ) ;
115
130
You can’t perform that action at this time.
0 commit comments