Skip to content

Commit 2f9df1d

Browse files
authored
Merge pull request #9746 from Turbo87/typosquat-utils
typosquat/test_util: Simplify `crate_and_version()` by using `CrateBuilder`
2 parents 574f523 + 1a6755e commit 2f9df1d

File tree

3 files changed

+15
-29
lines changed

3 files changed

+15
-29
lines changed

src/typosquat/database.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ mod tests {
183183

184184
// Let's set up a team that owns both b and c, but not a.
185185
let not_the_a_team = faker::team(&mut conn, "org", "team")?;
186-
faker::add_crate_to_team(&mut conn, &user_b, &top_b.0, &not_the_a_team)?;
187-
faker::add_crate_to_team(&mut conn, &user_b, &not_top_c.0, &not_the_a_team)?;
186+
faker::add_crate_to_team(&mut conn, &user_b, &top_b, &not_the_a_team)?;
187+
faker::add_crate_to_team(&mut conn, &user_b, &not_top_c, &not_the_a_team)?;
188188

189189
let top_crates = TopCrates::new(&mut conn, 2)?;
190190

src/typosquat/test_util.rs

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ use diesel::{prelude::*, PgConnection};
22

33
use crate::tests::util::github::next_gh_id;
44
use crate::{
5-
models::{
6-
Crate, CrateOwner, NewCrate, NewTeam, NewUser, NewVersion, Owner, OwnerKind, User, Version,
7-
},
8-
schema::{crate_downloads, crate_owners, users},
5+
models::{Crate, CrateOwner, NewTeam, NewUser, Owner, OwnerKind, User},
6+
schema::{crate_owners, users},
97
};
108

119
pub mod faker {
1210
use super::*;
11+
use crate::tests::builders::CrateBuilder;
12+
use anyhow::anyhow;
1313

1414
pub fn add_crate_to_team(
1515
conn: &mut PgConnection,
@@ -38,27 +38,13 @@ pub mod faker {
3838
description: &str,
3939
user: &User,
4040
downloads: i32,
41-
) -> anyhow::Result<(Crate, Version)> {
42-
let krate = NewCrate {
43-
name,
44-
description: Some(description),
45-
..Default::default()
46-
}
47-
.create(conn, user.id)?;
48-
49-
diesel::update(crate_downloads::table)
50-
.filter(crate_downloads::crate_id.eq(krate.id))
51-
.set(crate_downloads::downloads.eq(downloads as i64))
52-
.execute(conn)?;
53-
54-
let version = NewVersion::builder(krate.id, "1.0.0")
55-
.published_by(user.id)
56-
.checksum("0000000000000000000000000000000000000000000000000000000000000000")
57-
.build()
58-
.save(conn, "[email protected]")
59-
.unwrap();
60-
61-
Ok((krate, version))
41+
) -> anyhow::Result<Crate> {
42+
CrateBuilder::new(name, user.id)
43+
.description(description)
44+
.downloads(downloads)
45+
.version("1.0.0")
46+
.build(conn)
47+
.map_err(|err| anyhow!(err.to_string()))
6248
}
6349

6450
pub fn team(conn: &mut PgConnection, org: &str, team: &str) -> anyhow::Result<Owner> {

src/worker/jobs/typosquat.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,14 @@ mod tests {
141141

142142
// Now we'll create new crates: one problematic, one not so.
143143
let other_user = faker::user(&mut conn, "b")?;
144-
let (angel, _version) = faker::crate_and_version(
144+
let angel = faker::crate_and_version(
145145
&mut conn,
146146
"innocent-crate",
147147
"I'm just a simple, innocent crate",
148148
&other_user,
149149
0,
150150
)?;
151-
let (demon, _version) = faker::crate_and_version(
151+
let demon = faker::crate_and_version(
152152
&mut conn,
153153
"mycrate",
154154
"I'm even more innocent, obviously",

0 commit comments

Comments
 (0)