mod common;
use technitium::{CreateGroup, CreateUser};
const TEST_USER: &str = "test-user-integration";
const TEST_GROUP: &str = "test-group-integration";
#[tokio::test]
#[ignore = "requires running Technitium server"]
async fn user_lifecycle() {
let client = common::authenticated_client().await;
let _ = client.delete_user(TEST_USER).await;
client
.create_user(&CreateUser {
username: TEST_USER.to_string(),
display_name: "Integration Test User".to_string(),
password: "test-password-123".to_string(),
})
.await
.expect("create_user should succeed");
let users = client
.list_users()
.await
.expect("list_users should succeed");
assert!(
users
.iter()
.any(|u| u.username.as_deref() == Some(TEST_USER)),
"created user should appear in list"
);
let user = client
.get_user(TEST_USER)
.await
.expect("get_user should succeed");
assert_eq!(user.username.as_deref(), Some(TEST_USER));
client
.delete_user(TEST_USER)
.await
.expect("delete_user should succeed");
}
#[tokio::test]
#[ignore = "requires running Technitium server"]
async fn group_lifecycle() {
let client = common::authenticated_client().await;
let _ = client.delete_group(TEST_GROUP).await;
client
.create_group(&CreateGroup {
name: TEST_GROUP.to_string(),
description: "Integration test group".to_string(),
})
.await
.expect("create_group should succeed");
let groups = client
.list_groups()
.await
.expect("list_groups should succeed");
assert!(
groups.iter().any(|g| g.name.as_deref() == Some(TEST_GROUP)),
"created group should appear in list"
);
client
.delete_group(TEST_GROUP)
.await
.expect("delete_group should succeed");
}