@@ -53,3 +53,80 @@ test('returns a list of version downloads belonging to the specified crate versi
5353 } ,
5454 } ) ;
5555} ) ;
56+
57+ test ( 'includes related versions' , async function ( ) {
58+ let crate = db . crate . create ( { name : 'rand' } ) ;
59+ let versions = Array . from ( { length : 2 } , ( ) => db . version . create ( { crate } ) ) ;
60+ db . versionDownload . create ( { version : versions [ 0 ] , date : '2020-01-13' } ) ;
61+ db . versionDownload . create ( { version : versions [ 1 ] , date : '2020-01-14' } ) ;
62+ db . versionDownload . create ( { version : versions [ 1 ] , date : '2020-01-15' } ) ;
63+
64+ let response = await fetch ( '/api/v1/crates/rand/downloads?include=versions' ) ;
65+ assert . strictEqual ( response . status , 200 ) ;
66+ assert . deepEqual ( await response . json ( ) , {
67+ version_downloads : [
68+ {
69+ date : '2020-01-13' ,
70+ downloads : 7035 ,
71+ version : 1 ,
72+ } ,
73+ {
74+ date : '2020-01-14' ,
75+ downloads : 14_070 ,
76+ version : 2 ,
77+ } ,
78+ {
79+ date : '2020-01-15' ,
80+ downloads : 21_105 ,
81+ version : 2 ,
82+ } ,
83+ ] ,
84+ versions : [
85+ {
86+ crate : 'rand' ,
87+ crate_size : 162_963 ,
88+ created_at : '2010-06-16T21:30:45Z' ,
89+ dl_path : '/api/v1/crates/rand/1.0.0/download' ,
90+ downloads : 3702 ,
91+ features : { } ,
92+ id : 1 ,
93+ license : 'MIT' ,
94+ links : {
95+ dependencies : '/api/v1/crates/rand/1.0.0/dependencies' ,
96+ version_downloads : '/api/v1/crates/rand/1.0.0/downloads' ,
97+ } ,
98+ num : '1.0.0' ,
99+ published_by : null ,
100+ readme_path : '/api/v1/crates/rand/1.0.0/readme' ,
101+ rust_version : null ,
102+ updated_at : '2017-02-24T12:34:56Z' ,
103+ yank_message : null ,
104+ yanked : false ,
105+ } ,
106+ {
107+ crate : 'rand' ,
108+ crate_size : 325_926 ,
109+ created_at : '2010-06-16T21:30:45Z' ,
110+ dl_path : '/api/v1/crates/rand/1.0.1/download' ,
111+ downloads : 7404 ,
112+ features : { } ,
113+ id : 2 ,
114+ license : 'Apache-2.0' ,
115+ links : {
116+ dependencies : '/api/v1/crates/rand/1.0.1/dependencies' ,
117+ version_downloads : '/api/v1/crates/rand/1.0.1/downloads' ,
118+ } ,
119+ num : '1.0.1' ,
120+ published_by : null ,
121+ readme_path : '/api/v1/crates/rand/1.0.1/readme' ,
122+ rust_version : null ,
123+ updated_at : '2017-02-24T12:34:56Z' ,
124+ yank_message : null ,
125+ yanked : false ,
126+ } ,
127+ ] ,
128+ meta : {
129+ extra_downloads : [ ] ,
130+ } ,
131+ } ) ;
132+ } ) ;
0 commit comments