move admin tests into unit; fix
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
a35b6cbfdd
commit
03d890cd49
3 changed files with 27 additions and 28 deletions
|
@ -24,7 +24,6 @@ use crate::{
|
||||||
};
|
};
|
||||||
pub(crate) const PAGE_SIZE: usize = 100;
|
pub(crate) const PAGE_SIZE: usize = 100;
|
||||||
|
|
||||||
#[cfg_attr(test, derive(Debug))]
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
#[command(name = "admin", version = env!("CARGO_PKG_VERSION"))]
|
#[command(name = "admin", version = env!("CARGO_PKG_VERSION"))]
|
||||||
pub(crate) enum AdminCommand {
|
pub(crate) enum AdminCommand {
|
||||||
|
|
|
@ -9,6 +9,7 @@ pub(crate) mod media;
|
||||||
pub(crate) mod query;
|
pub(crate) mod query;
|
||||||
pub(crate) mod room;
|
pub(crate) mod room;
|
||||||
pub(crate) mod server;
|
pub(crate) mod server;
|
||||||
|
mod tests;
|
||||||
pub(crate) mod user;
|
pub(crate) mod user;
|
||||||
pub(crate) mod utils;
|
pub(crate) mod utils;
|
||||||
|
|
||||||
|
@ -53,30 +54,3 @@ pub async fn fini() {
|
||||||
.expect("locked for writing")
|
.expect("locked for writing")
|
||||||
.take();
|
.take();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod test {
|
|
||||||
use clap::Parser;
|
|
||||||
|
|
||||||
use crate::handler::AdminCommand;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn get_help_short() { get_help_inner("-h"); }
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn get_help_long() { get_help_inner("--help"); }
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn get_help_subcommand() { get_help_inner("help"); }
|
|
||||||
|
|
||||||
fn get_help_inner(input: &str) {
|
|
||||||
let error = AdminCommand::try_parse_from(["argv[0] doesn't matter", input])
|
|
||||||
.unwrap_err()
|
|
||||||
.to_string();
|
|
||||||
|
|
||||||
// Search for a handful of keywords that suggest the help printed properly
|
|
||||||
assert!(error.contains("Usage:"));
|
|
||||||
assert!(error.contains("Commands:"));
|
|
||||||
assert!(error.contains("Options:"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
26
src/admin/tests.rs
Normal file
26
src/admin/tests.rs
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#![cfg(test)]
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn get_help_short() { get_help_inner("-h"); }
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn get_help_long() { get_help_inner("--help"); }
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn get_help_subcommand() { get_help_inner("help"); }
|
||||||
|
|
||||||
|
fn get_help_inner(input: &str) {
|
||||||
|
use clap::Parser;
|
||||||
|
|
||||||
|
use crate::handler::AdminCommand;
|
||||||
|
|
||||||
|
let Err(error) = AdminCommand::try_parse_from(["argv[0] doesn't matter", input]) else {
|
||||||
|
panic!("no error!");
|
||||||
|
};
|
||||||
|
|
||||||
|
let error = error.to_string();
|
||||||
|
// Search for a handful of keywords that suggest the help printed properly
|
||||||
|
assert!(error.contains("Usage:"));
|
||||||
|
assert!(error.contains("Commands:"));
|
||||||
|
assert!(error.contains("Options:"));
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue