@@ -53,3 +53,80 @@ test('returns a list of version downloads belonging to the specified crate versi
53
53
} ,
54
54
} ) ;
55
55
} ) ;
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