|
| 1 | +use crate::schema::users; |
1 | 2 | use crate::tests::builders::{CrateBuilder, VersionBuilder}; |
2 | 3 | use crate::tests::util::insta::assert_json_snapshot; |
3 | | -use crate::tests::TestApp; |
4 | 4 | use chrono::{Days, Utc}; |
| 5 | +use crates_io_test_db::TestDatabase; |
| 6 | +use diesel::{ExpressionMethods, RunQueryDsl}; |
5 | 7 |
|
6 | 8 | #[test] |
7 | 9 | fn index_metadata() { |
8 | | - let (app, _, user) = TestApp::init().with_user(); |
9 | | - let user = user.as_model(); |
10 | | - |
11 | | - app.db(|conn| { |
12 | | - let created_at_1 = Utc::now() |
13 | | - .checked_sub_days(Days::new(14)) |
14 | | - .unwrap() |
15 | | - .naive_utc(); |
16 | | - |
17 | | - let created_at_2 = Utc::now() |
18 | | - .checked_sub_days(Days::new(7)) |
19 | | - .unwrap() |
20 | | - .naive_utc(); |
21 | | - |
22 | | - let fooo = CrateBuilder::new("foo", user.id) |
23 | | - .version(VersionBuilder::new("0.1.0")) |
24 | | - .expect_build(conn); |
25 | | - |
26 | | - let metadata = fooo.index_metadata(conn).unwrap(); |
27 | | - assert_json_snapshot!(metadata); |
28 | | - |
29 | | - let bar = CrateBuilder::new("bar", user.id) |
30 | | - .version( |
31 | | - VersionBuilder::new("1.0.0-beta.1") |
32 | | - .created_at(created_at_1) |
33 | | - .yanked(true), |
34 | | - ) |
35 | | - .version(VersionBuilder::new("1.0.0").created_at(created_at_1)) |
36 | | - .version( |
37 | | - VersionBuilder::new("2.0.0") |
38 | | - .created_at(created_at_2) |
39 | | - .dependency(&fooo, None), |
40 | | - ) |
41 | | - .version(VersionBuilder::new("1.0.1").checksum("0123456789abcdef")) |
42 | | - .expect_build(conn); |
43 | | - |
44 | | - let metadata = bar.index_metadata(conn).unwrap(); |
45 | | - assert_json_snapshot!(metadata); |
46 | | - }); |
| 10 | + let test_db = TestDatabase::new(); |
| 11 | + let mut conn = test_db.connect(); |
| 12 | + |
| 13 | + let user_id = diesel::insert_into(users::table) |
| 14 | + .values(( |
| 15 | + users::name.eq("user1"), |
| 16 | + users::gh_login.eq("user1"), |
| 17 | + users::gh_id.eq(42), |
| 18 | + users::gh_access_token.eq("some random token"), |
| 19 | + )) |
| 20 | + .returning(users::id) |
| 21 | + .get_result::<i32>(&mut conn) |
| 22 | + .unwrap(); |
| 23 | + |
| 24 | + let created_at_1 = Utc::now() |
| 25 | + .checked_sub_days(Days::new(14)) |
| 26 | + .unwrap() |
| 27 | + .naive_utc(); |
| 28 | + |
| 29 | + let created_at_2 = Utc::now() |
| 30 | + .checked_sub_days(Days::new(7)) |
| 31 | + .unwrap() |
| 32 | + .naive_utc(); |
| 33 | + |
| 34 | + let fooo = CrateBuilder::new("foo", user_id) |
| 35 | + .version(VersionBuilder::new("0.1.0")) |
| 36 | + .expect_build(&mut conn); |
| 37 | + |
| 38 | + let metadata = fooo.index_metadata(&mut conn).unwrap(); |
| 39 | + assert_json_snapshot!(metadata); |
| 40 | + |
| 41 | + let bar = CrateBuilder::new("bar", user_id) |
| 42 | + .version( |
| 43 | + VersionBuilder::new("1.0.0-beta.1") |
| 44 | + .created_at(created_at_1) |
| 45 | + .yanked(true), |
| 46 | + ) |
| 47 | + .version(VersionBuilder::new("1.0.0").created_at(created_at_1)) |
| 48 | + .version( |
| 49 | + VersionBuilder::new("2.0.0") |
| 50 | + .created_at(created_at_2) |
| 51 | + .dependency(&fooo, None), |
| 52 | + ) |
| 53 | + .version(VersionBuilder::new("1.0.1").checksum("0123456789abcdef")) |
| 54 | + .expect_build(&mut conn); |
| 55 | + |
| 56 | + let metadata = bar.index_metadata(&mut conn).unwrap(); |
| 57 | + assert_json_snapshot!(metadata); |
47 | 58 | } |
0 commit comments