|
| 1 | +use crate::builders::{CrateBuilder, VersionBuilder}; |
| 2 | +use crate::util::{RequestHelper, TestApp}; |
| 3 | +use diesel::prelude::*; |
| 4 | + |
| 5 | +#[test] |
| 6 | +fn krate() { |
| 7 | + let (app, anon, user) = TestApp::init().with_user(); |
| 8 | + let user = user.as_model(); |
| 9 | + |
| 10 | + let krate = app.db(|conn| { |
| 11 | + use cargo_registry::schema::versions; |
| 12 | + use diesel::{update, ExpressionMethods}; |
| 13 | + |
| 14 | + let krate = CrateBuilder::new("foo_show", user.id) |
| 15 | + .description("description") |
| 16 | + .documentation("https://example.com") |
| 17 | + .homepage("http://example.com") |
| 18 | + .version(VersionBuilder::new("1.0.0")) |
| 19 | + .version(VersionBuilder::new("0.5.0")) |
| 20 | + .version(VersionBuilder::new("0.5.1")) |
| 21 | + .keyword("kw1") |
| 22 | + .downloads(20) |
| 23 | + .recent_downloads(10) |
| 24 | + .expect_build(conn); |
| 25 | + |
| 26 | + // Make version 1.0.0 mimic a version published before we started recording who published |
| 27 | + // versions |
| 28 | + let none: Option<i32> = None; |
| 29 | + update(versions::table) |
| 30 | + .filter(versions::num.eq("1.0.0")) |
| 31 | + .set(versions::published_by.eq(none)) |
| 32 | + .execute(conn) |
| 33 | + .unwrap(); |
| 34 | + |
| 35 | + krate |
| 36 | + }); |
| 37 | + |
| 38 | + let json = anon.show_crate_minimal("foo_show"); |
| 39 | + assert_eq!(json.name, krate.name); |
| 40 | + assert_eq!(json.id, krate.name); |
| 41 | + assert_eq!(json.description, krate.description); |
| 42 | + assert_eq!(json.homepage, krate.homepage); |
| 43 | + assert_eq!(json.documentation, krate.documentation); |
| 44 | + assert_eq!(json.keywords, None); |
| 45 | + assert_eq!(json.recent_downloads, None); |
| 46 | + assert_eq!(json.versions, None); |
| 47 | +} |
0 commit comments