* chore(clippy): enable and fix many stricter lints These ensure that the codebase uses more idiomatic, performant, and concise language constructions. * chore: make non-Clippy compiler warnings also deny by default
33 lines
1.1 KiB
Rust
33 lines
1.1 KiB
Rust
use chrono::Utc;
|
|
use labrinth::{
|
|
database::{self, models::generate_pat_id},
|
|
models::pats::Scopes,
|
|
};
|
|
|
|
use super::database::TemporaryDatabase;
|
|
|
|
// Creates a PAT with the given scopes, and returns the access token
|
|
// Interfacing with the db directly, rather than using a ourte,
|
|
// allows us to test with scopes that are not allowed to be created by PATs
|
|
pub async fn create_test_pat(
|
|
scopes: Scopes,
|
|
user_id: i64,
|
|
db: &TemporaryDatabase,
|
|
) -> String {
|
|
let mut transaction = db.pool.begin().await.unwrap();
|
|
let id = generate_pat_id(&mut transaction).await.unwrap();
|
|
let pat = database::models::pat_item::DBPersonalAccessToken {
|
|
id,
|
|
name: format!("test_pat_{}", scopes.bits()),
|
|
access_token: format!("mrp_{}", id.0),
|
|
scopes,
|
|
user_id: database::models::ids::DBUserId(user_id),
|
|
created: Utc::now(),
|
|
expires: Utc::now() + chrono::Duration::days(1),
|
|
last_used: None,
|
|
};
|
|
pat.insert(&mut transaction).await.unwrap();
|
|
transaction.commit().await.unwrap();
|
|
pat.access_token
|
|
}
|