requestty 0.6.3

An easy-to-use collection of interactive cli prompts
Documentation
struct Runner {
    cases: trybuild::TestCases,
    name: &'static str,
}

impl Runner {
    fn new(name: &'static str) -> Self {
        Self {
            cases: trybuild::TestCases::new(),
            name,
        }
    }

    fn compile_fail(&self, test_name: &str) {
        self.cases
            .compile_fail(format!("tests/macros/{}/{}.rs", self.name, test_name))
    }

    fn pass(&self, test_name: &str) {
        self.cases
            .pass(format!("tests/macros/{}/{}.rs", self.name, test_name))
    }
}

#[test]
#[ignore = "proc-macro test"]
fn test_duplicate() {
    let t = Runner::new("duplicate");
    t.compile_fail("name");
    t.compile_fail("message");
    t.compile_fail("when");
    t.compile_fail("ask_if_answered");
    t.compile_fail("default");
    t.compile_fail("validate");
    t.compile_fail("validate_on_key");
    t.compile_fail("filter");
    t.compile_fail("transform");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("page_size");
    t.compile_fail("should_loop");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_unknown() {
    let t = Runner::new("unknown");
    t.compile_fail("kind");
    t.compile_fail("option");
}

#[test]
#[ignore = "proc-macro test"]
fn test_missing() {
    let t = Runner::new("missing");
    t.compile_fail("name");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_from_local_variable() {
    let t = Runner::new("local_variable");
    t.pass("valid");
    t.compile_fail("not_found");
    t.compile_fail("unexpected_token");
}

#[test]
#[ignore = "proc-macro test"]
fn test_multi_select() {
    let t = Runner::new("multi_select");

    t.pass("valid");
    t.compile_fail("default");
    t.compile_fail("default_with_sep");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_order_select() {
    let t = Runner::new("order_select");

    t.pass("valid");
    t.compile_fail("default");
    t.compile_fail("separator");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_confirm() {
    let t = Runner::new("confirm");

    t.pass("valid");
    t.compile_fail("filter");
    t.compile_fail("validate");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("should_loop");
    t.compile_fail("page_size");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_editor() {
    let t = Runner::new("editor");

    t.pass("valid");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("should_loop");
    t.compile_fail("page_size");
    t.compile_fail("mask");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_expand() {
    let t = Runner::new("expand");

    t.pass("valid");
    t.compile_fail("filter");
    t.compile_fail("validate");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_float() {
    let t = Runner::new("float");

    t.pass("valid");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_input() {
    let t = Runner::new("input");

    t.pass("valid");
    t.compile_fail("choices");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_int() {
    let t = Runner::new("int");

    t.pass("valid");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("should_loop");
    t.compile_fail("page_size");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_select() {
    let t = Runner::new("select");

    t.pass("valid");
    t.compile_fail("filter");
    t.compile_fail("validate");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_password() {
    let t = Runner::new("password");

    t.pass("valid");
    t.compile_fail("default");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("should_loop");
    t.compile_fail("page_size");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}

#[test]
#[ignore = "proc-macro test"]
fn test_custom_prompt() {
    let t = Runner::new("custom_prompt");

    t.pass("valid");
    t.compile_fail("default");
    t.compile_fail("on_esc");
    t.compile_fail("transform");
    t.compile_fail("filter");
    t.compile_fail("validate");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("choices");
    t.compile_fail("should_loop");
    t.compile_fail("page_size");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
}

#[test]
#[ignore = "proc-macro test"]
fn test_raw_select() {
    let t = Runner::new("raw_select");

    t.pass("valid");
    t.compile_fail("filter");
    t.compile_fail("validate");
    t.compile_fail("validate_on_key");
    t.compile_fail("auto_complete");
    t.compile_fail("mask");
    t.compile_fail("extension");
    t.compile_fail("editor");
    t.compile_fail("prompt");
}