|
1 | 1 | use crate::schema::categories; |
2 | 2 | use crates_io_test_db::TestDatabase; |
3 | 3 | use diesel::*; |
| 4 | +use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl}; |
4 | 5 |
|
5 | 6 | const ALGORITHMS: &str = r#" |
6 | 7 | [algorithms] |
@@ -37,56 +38,65 @@ name = "Another" |
37 | 38 | description = "Another category ho hum" |
38 | 39 | "#; |
39 | 40 |
|
40 | | -fn select_slugs(conn: &mut PgConnection) -> Vec<String> { |
| 41 | +async fn select_slugs(conn: &mut AsyncPgConnection) -> Vec<String> { |
41 | 42 | categories::table |
42 | 43 | .select(categories::slug) |
43 | 44 | .order(categories::slug) |
44 | 45 | .load(conn) |
| 46 | + .await |
45 | 47 | .unwrap() |
46 | 48 | } |
47 | 49 |
|
48 | | -#[test] |
49 | | -fn sync_adds_new_categories() { |
| 50 | +#[tokio::test] |
| 51 | +async fn sync_adds_new_categories() { |
50 | 52 | let test_db = TestDatabase::new(); |
51 | | - let mut conn = test_db.connect(); |
| 53 | + let mut conn = AsyncPgConnection::establish(test_db.url()).await.unwrap(); |
52 | 54 |
|
53 | | - crate::boot::categories::sync_with_connection(ALGORITHMS_AND_SUCH, &mut conn).unwrap(); |
| 55 | + crate::boot::categories::sync_with_connection(ALGORITHMS_AND_SUCH, &mut conn) |
| 56 | + .await |
| 57 | + .unwrap(); |
54 | 58 |
|
55 | | - let categories = select_slugs(&mut conn); |
| 59 | + let categories = select_slugs(&mut conn).await; |
56 | 60 | assert_eq!(categories, vec!["algorithms", "algorithms::such"]); |
57 | 61 | } |
58 | 62 |
|
59 | | -#[test] |
60 | | -fn sync_removes_missing_categories() { |
| 63 | +#[tokio::test] |
| 64 | +async fn sync_removes_missing_categories() { |
61 | 65 | let test_db = TestDatabase::new(); |
62 | | - let mut conn = test_db.connect(); |
| 66 | + let mut conn = AsyncPgConnection::establish(test_db.url()).await.unwrap(); |
63 | 67 |
|
64 | | - crate::boot::categories::sync_with_connection(ALGORITHMS_AND_SUCH, &mut conn).unwrap(); |
65 | | - crate::boot::categories::sync_with_connection(ALGORITHMS, &mut conn).unwrap(); |
| 68 | + crate::boot::categories::sync_with_connection(ALGORITHMS_AND_SUCH, &mut conn) |
| 69 | + .await |
| 70 | + .unwrap(); |
| 71 | + crate::boot::categories::sync_with_connection(ALGORITHMS, &mut conn) |
| 72 | + .await |
| 73 | + .unwrap(); |
66 | 74 |
|
67 | | - let categories = select_slugs(&mut conn); |
| 75 | + let categories = select_slugs(&mut conn).await; |
68 | 76 | assert_eq!(categories, vec!["algorithms"]); |
69 | 77 | } |
70 | 78 |
|
71 | | -#[test] |
72 | | -fn sync_adds_and_removes() { |
| 79 | +#[tokio::test] |
| 80 | +async fn sync_adds_and_removes() { |
73 | 81 | let test_db = TestDatabase::new(); |
74 | | - let mut conn = test_db.connect(); |
| 82 | + let mut conn = AsyncPgConnection::establish(test_db.url()).await.unwrap(); |
75 | 83 |
|
76 | | - crate::boot::categories::sync_with_connection(ALGORITHMS_AND_SUCH, &mut conn).unwrap(); |
77 | | - crate::boot::categories::sync_with_connection(ALGORITHMS_AND_ANOTHER, &mut conn).unwrap(); |
| 84 | + crate::boot::categories::sync_with_connection(ALGORITHMS_AND_SUCH, &mut conn) |
| 85 | + .await |
| 86 | + .unwrap(); |
| 87 | + crate::boot::categories::sync_with_connection(ALGORITHMS_AND_ANOTHER, &mut conn) |
| 88 | + .await |
| 89 | + .unwrap(); |
78 | 90 |
|
79 | | - let categories = select_slugs(&mut conn); |
| 91 | + let categories = select_slugs(&mut conn).await; |
80 | 92 | assert_eq!(categories, vec!["algorithms", "another"]); |
81 | 93 | } |
82 | 94 |
|
83 | | -#[test] |
84 | | -fn test_real_categories() { |
| 95 | +#[tokio::test] |
| 96 | +async fn test_real_categories() { |
85 | 97 | let test_db = TestDatabase::new(); |
86 | | - let mut conn = test_db.connect(); |
| 98 | + let mut conn = AsyncPgConnection::establish(test_db.url()).await.unwrap(); |
87 | 99 |
|
88 | 100 | const TOML: &str = include_str!("../boot/categories.toml"); |
89 | | - assert_ok!(crate::boot::categories::sync_with_connection( |
90 | | - TOML, &mut conn |
91 | | - )); |
| 101 | + assert_ok!(crate::boot::categories::sync_with_connection(TOML, &mut conn).await); |
92 | 102 | } |
0 commit comments