Skip to content

Commit 26ab58e

Browse files
Merge #1514
1514: Convert more tests r=jtgeibel a=jtgeibel This converts another batch of tests. The first 3 commits are straightforward conversions. The 4th commit includes 2 tests where I pulled some logic into closures. It makes the tests much easier to follow, but the diff isn't as straightforward. The final commit includes a few minor cleanups. Co-authored-by: Justin Geibel <[email protected]>
2 parents 335e9e5 + db93266 commit 26ab58e

File tree

5 files changed

+359
-500
lines changed

5 files changed

+359
-500
lines changed

src/tests/category.rs

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use conduit::{Handler, Method};
22

33
use models::Category;
44
use views::{EncodableCategory, EncodableCategoryWithSubcategories};
5-
use {app, new_category, new_user, req, CrateBuilder};
5+
use {app, new_category, new_user, req, CrateBuilder, RequestHelper, TestApp};
66

77
#[derive(Deserialize)]
88
struct CategoryList {
@@ -24,55 +24,47 @@ struct CategoryWithSubcategories {
2424

2525
#[test]
2626
fn index() {
27-
let (_b, app, middle) = app();
28-
let mut req = req(Method::Get, "/api/v1/categories");
27+
let (app, anon) = TestApp::empty();
28+
let url = "/api/v1/categories";
2929

3030
// List 0 categories if none exist
31-
let mut response = ok_resp!(middle.call(&mut req));
32-
let json: CategoryList = ::json(&mut response);
31+
let json: CategoryList = anon.get(url).good();
3332
assert_eq!(json.categories.len(), 0);
3433
assert_eq!(json.meta.total, 0);
3534

3635
// Create a category and a subcategory
37-
{
38-
let conn = t!(app.diesel_database.get());
36+
app.db(|conn| {
3937
new_category("foo", "foo", "Foo crates")
40-
.create_or_update(&conn)
38+
.create_or_update(conn)
4139
.unwrap();
4240
new_category("foo::bar", "foo::bar", "Bar crates")
43-
.create_or_update(&conn)
41+
.create_or_update(conn)
4442
.unwrap();
45-
}
46-
47-
let mut response = ok_resp!(middle.call(&mut req));
48-
let json: CategoryList = ::json(&mut response);
43+
});
4944

5045
// Only the top-level categories should be on the page
46+
let json: CategoryList = anon.get(url).good();
5147
assert_eq!(json.categories.len(), 1);
5248
assert_eq!(json.meta.total, 1);
5349
assert_eq!(json.categories[0].category, "foo");
5450
}
5551

5652
#[test]
5753
fn show() {
58-
let (_b, app, middle) = app();
54+
let (app, anon) = TestApp::empty();
55+
let url = "/api/v1/categories/foo-bar";
5956

6057
// Return not found if a category doesn't exist
61-
let mut req = req(Method::Get, "/api/v1/categories/foo-bar");
62-
let response = t!(middle.call(&mut req));
63-
assert_eq!(response.status.0, 404);
58+
anon.get(&url).assert_not_found();
6459

6560
// Create a category and a subcategory
66-
{
67-
let conn = t!(app.diesel_database.get());
68-
69-
t!(new_category("Foo Bar", "foo-bar", "Foo Bar crates").create_or_update(&conn));
70-
t!(new_category("Foo Bar::Baz", "foo-bar::baz", "Baz crates").create_or_update(&conn));
71-
}
61+
app.db(|conn| {
62+
t!(new_category("Foo Bar", "foo-bar", "Foo Bar crates").create_or_update(conn));
63+
t!(new_category("Foo Bar::Baz", "foo-bar::baz", "Baz crates").create_or_update(conn));
64+
});
7265

7366
// The category and its subcategories should be in the json
74-
let mut response = ok_resp!(middle.call(&mut req));
75-
let json: CategoryWithSubcategories = ::json(&mut response);
67+
let json: CategoryWithSubcategories = anon.get(&url).good();
7668
assert_eq!(json.category.category, "Foo Bar");
7769
assert_eq!(json.category.slug, "foo-bar");
7870
assert_eq!(json.category.subcategories.len(), 1);
@@ -169,18 +161,15 @@ fn update_crate() {
169161

170162
#[test]
171163
fn category_slugs_returns_all_slugs_in_alphabetical_order() {
172-
let (_b, app, middle) = app();
173-
{
174-
let conn = app.diesel_database.get().unwrap();
164+
let (app, anon) = TestApp::empty();
165+
app.db(|conn| {
175166
new_category("Foo", "foo", "For crates that foo")
176167
.create_or_update(&conn)
177168
.unwrap();
178169
new_category("Bar", "bar", "For crates that bar")
179170
.create_or_update(&conn)
180171
.unwrap();
181-
}
182-
183-
let mut req = req(Method::Get, "/api/v1/category_slugs");
172+
});
184173

185174
#[derive(Deserialize, Debug, PartialEq)]
186175
struct Slug {
@@ -194,7 +183,7 @@ fn category_slugs_returns_all_slugs_in_alphabetical_order() {
194183
category_slugs: Vec<Slug>,
195184
}
196185

197-
let response = ::json(&mut ok_resp!(middle.call(&mut req)));
186+
let response = anon.get("/api/v1/category_slugs").good();
198187
let expected_response = Slugs {
199188
category_slugs: vec![
200189
Slug {

0 commit comments

Comments
 (0)