|
1 |
| -use std::collections::HashMap; |
| 1 | +extern crate diesel; |
| 2 | + |
2 | 3 | use rustc_serialize::json::Json;
|
3 | 4 |
|
4 | 5 | use conduit::{Handler, Method};
|
5 |
| -use semver; |
| 6 | +use self::diesel::prelude::*; |
6 | 7 |
|
7 |
| -use cargo_registry::db::RequestTransaction; |
8 |
| -use cargo_registry::version::{EncodableVersion, Version}; |
| 8 | +use cargo_registry::version::EncodableVersion; |
| 9 | +use cargo_registry::schema::versions; |
9 | 10 |
|
10 | 11 | #[derive(RustcDecodable)]
|
11 | 12 | struct VersionList { versions: Vec<EncodableVersion> }
|
12 | 13 | #[derive(RustcDecodable)]
|
13 | 14 | struct VersionResponse { version: EncodableVersion }
|
14 | 15 |
|
15 |
| -fn sv(s: &str) -> semver::Version { |
16 |
| - semver::Version::parse(s).unwrap() |
17 |
| -} |
18 |
| - |
19 | 16 | #[test]
|
20 | 17 | fn index() {
|
21 | 18 | let (_b, app, middle) = ::app();
|
22 |
| - let mut req = ::req(app, Method::Get, "/api/v1/versions"); |
| 19 | + let mut req = ::req(app.clone(), Method::Get, "/api/v1/versions"); |
23 | 20 | let mut response = ok_resp!(middle.call(&mut req));
|
24 | 21 | let json: VersionList = ::json(&mut response);
|
25 | 22 | assert_eq!(json.versions.len(), 0);
|
26 | 23 |
|
27 | 24 | let (v1, v2) = {
|
28 |
| - ::mock_user(&mut req, ::user("foo")); |
29 |
| - let (c, _) = ::mock_crate(&mut req, ::krate("foo_vers_index")); |
30 |
| - let tx = req.tx().unwrap(); |
31 |
| - let m = HashMap::new(); |
32 |
| - let v1 = Version::insert(tx, c.id, &sv("2.0.0"), &m, &[]).unwrap(); |
33 |
| - let v2 = Version::insert(tx, c.id, &sv("2.0.1"), &m, &[]).unwrap(); |
34 |
| - (v1, v2) |
| 25 | + let conn = app.diesel_database.get().unwrap(); |
| 26 | + let u = ::new_user("foo").create_or_update(&conn).unwrap(); |
| 27 | + ::CrateBuilder::new("foo_vers_index", u.id) |
| 28 | + .version("2.0.0") |
| 29 | + .version("2.0.1") |
| 30 | + .expect_build(&conn); |
| 31 | + let ids = versions::table.select(versions::id).load::<i32>(&*conn).unwrap(); |
| 32 | + (ids[0], ids[1]) |
35 | 33 | };
|
36 |
| - req.with_query(&format!("ids[]={}&ids[]={}", v1.id, v2.id)); |
| 34 | + req.with_query(&format!("ids[]={}&ids[]={}", v1, v2)); |
37 | 35 | let mut response = ok_resp!(middle.call(&mut req));
|
38 | 36 | let json: VersionList = ::json(&mut response);
|
39 | 37 | assert_eq!(json.versions.len(), 2);
|
|
0 commit comments