Skip to content

Commit cf7e7ba

Browse files
committed
chore: random password function
1 parent 60ac1bf commit cf7e7ba

File tree

4 files changed

+35
-5
lines changed

4 files changed

+35
-5
lines changed

Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ serde = { version = "1.0.203", features = ["derive"] }
1212
serde_yaml = "0.9.34+deprecated"
1313
tokio = { version = "1.38.0", features = ["macros", "rt"] }
1414
vaultrs = "0.7.2"
15+
rand = "0.9.0-alpha.1"

src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use crate::workflow::switch_active_users;
1010

1111
mod cli;
1212
mod config;
13+
mod password;
1314
mod vault;
1415
mod workflow;
1516

src/password.rs

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
use rand::{Rng, thread_rng};
2+
use rand::distributions::Alphanumeric;
3+
4+
fn generate_random_password(length: usize) -> String {
5+
let mut rng = thread_rng();
6+
let password: String = (0..length)
7+
.map(|_| rng.sample(Alphanumeric) as char)
8+
.collect();
9+
password
10+
}
11+
12+
#[cfg(test)]
13+
mod test {
14+
use super::*;
15+
16+
#[test]
17+
fn test_password_length() {
18+
for length in vec![8, 16, 32] {
19+
let password = generate_random_password(length);
20+
assert_eq!(password.len(), length);
21+
}
22+
}
23+
24+
#[test]
25+
fn test_password_content() {
26+
let password = generate_random_password(10);
27+
assert!(password.chars().all(|c| c.is_alphanumeric()));
28+
assert!(password.chars().any(|c| c.is_lowercase()));
29+
assert!(password.chars().any(|c| c.is_uppercase()));
30+
}
31+
}

src/vault.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,10 @@ fn get_vault_client(config: &Config) -> VaultClient {
8383
}
8484

8585
mod test {
86-
use std::env;
87-
86+
use super::*;
87+
use crate::config::PostgresConfig;
8888
use vaultrs::client::Client;
8989

90-
use crate::config::{Config, PostgresConfig, VaultConfig};
91-
use crate::vault::{get_vault_client, Vault, VAULT_TOKEN};
92-
9390
#[test]
9491
fn test_vault_connect() {
9592
let config = Config {

0 commit comments

Comments
 (0)