diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d2833cc..e8f2032 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -39,9 +39,9 @@ jobs: run: cargo test - name: run all examples run: | - cargo run -- examples/hooks/ --no-input -o hooks - cargo run -- examples/complex/ --no-input -o complex - cargo run -- examples/default-from-variable/ --no-input -o default - cargo run -- examples/slugify/ --no-input -o slugify - cargo run -- examples/super-basic/ --no-input -o super-basic - cargo run -- examples/with-directory/ --no-input -o with-directory \ No newline at end of file + cargo run --features=cli -- examples/hooks/ --no-input -o hooks + cargo run --features=cli -- examples/complex/ --no-input -o complex + cargo run --features=cli -- examples/default-from-variable/ --no-input -o default + cargo run --features=cli -- examples/slugify/ --no-input -o slugify + cargo run --features=cli -- examples/super-basic/ --no-input -o super-basic + cargo run --features=cli -- examples/with-directory/ --no-input -o with-directory \ No newline at end of file diff --git a/src/definition.rs b/src/definition.rs index 64d405e..817fdd5 100644 --- a/src/definition.rs +++ b/src/definition.rs @@ -253,8 +253,10 @@ mod tests { #[test] fn can_validate_definition() { insta::glob!("snapshots/validation/*.toml", |path| { - let errs = TemplateDefinition::validate_file(&path); - insta::assert_debug_snapshot!(&errs); + match TemplateDefinition::validate_file(&path) { + Ok(errs) => insta::assert_debug_snapshot!(&errs), + Err(e) => insta::assert_snapshot!(&e) + } }); } diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_in_choice.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_in_choice.toml.snap index e079e92..4b41303 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_in_choice.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_in_choice.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/default_not_in_choice.toml --- -Ok( - [ - "Variable `pg_version` has `10.5` as default, which isn't in the choices", - ], -) +[ + "Variable `pg_version` has `10.5` as default, which isn't in the choices", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_matching_regex.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_matching_regex.toml.snap index 0fc3726..fcde8c6 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_matching_regex.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@default_not_matching_regex.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/default_not_matching_regex.toml --- -Ok( - [ - "Variable `project_name` has a default that doesn't pass its validation regex", - ], -) +[ + "Variable `project_name` has a default that doesn't pass its validation regex", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@invalid_regex.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@invalid_regex.toml.snap index 5ff76be..1907a73 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@invalid_regex.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@invalid_regex.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/invalid_regex.toml --- -Ok( - [ - "Variable `project_name` has an invalid validation regex: **[0-9]++", - ], -) +[ + "Variable `project_name` has an invalid validation regex: **[0-9]++", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_matching_type.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_matching_type.toml.snap index 2ebdeea..b0bebab 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_matching_type.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_matching_type.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/only_if_matching_type.toml --- -Ok( - [ - "Variable `pg_version` depends on `database=true`, but the type of `database` is string", - ], -) +[ + "Variable `pg_version` depends on `database=true`, but the type of `database` is string", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_not_filled_yet_var.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_not_filled_yet_var.toml.snap index eff67ab..1b5dc50 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_not_filled_yet_var.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_not_filled_yet_var.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/only_if_not_filled_yet_var.toml --- -Ok( - [ - "Variable `pg_version` depends on `database`, which wasn't asked", - ], -) +[ + "Variable `pg_version` depends on `database`, which wasn't asked", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_unknown_var.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_unknown_var.toml.snap index 0867056..e9dbacf 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_unknown_var.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@only_if_unknown_var.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/only_if_unknown_var.toml --- -Ok( - [ - "Variable `pg_version` depends on `database`, which wasn't asked", - ], -) +[ + "Variable `pg_version` depends on `database`, which wasn't asked", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@regex_on_wrong_type.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@regex_on_wrong_type.toml.snap index 055afc5..5e15285 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@regex_on_wrong_type.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@regex_on_wrong_type.toml.snap @@ -3,8 +3,6 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/regex_on_wrong_type.toml --- -Ok( - [ - "Variable `project` has a validation regex but is not a string", - ], -) +[ + "Variable `project` has a validation regex but is not a string", +] diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@unsupported_type.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@unsupported_type.toml.snap index 6b9672d..c3806ee 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@unsupported_type.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@unsupported_type.toml.snap @@ -1,29 +1,10 @@ --- source: src/definition.rs -expression: "&errs" +expression: "&e" input_file: src/snapshots/validation/unsupported_type.toml --- -Err( - Error { - kind: Toml { - err: Error { - inner: Error { - inner: TomlError { - message: "Value 1.2 (of type `float`) is not allowed as a value: only strings, integers and boolean are.", - raw: Some( - "name = \"Test template\"\ndescription = \"A description\"\nkickstart_version = 1\n\n[[variables]]\nname = \"project_name\"\ndefault = 1.2\nprompt = \"What's the name of your project?\"\nvalidation = \"^([a-zA-Z][a-zA-Z0-9_-]+)$\"", - ), - keys: [ - "variables", - "default", - ], - span: Some( - 122..125, - ), - }, - }, - }, - }, - source: None, - }, -) +Invalid TOML: TOML parse error at line 7, column 11 + | +7 | default = 1.2 + | ^^^ +Value 1.2 (of type `float`) is not allowed as a value: only strings, integers and boolean are. diff --git a/src/snapshots/kickstart__definition__tests__can_validate_definition@valid.toml.snap b/src/snapshots/kickstart__definition__tests__can_validate_definition@valid.toml.snap index 48dbff0..d7bf853 100644 --- a/src/snapshots/kickstart__definition__tests__can_validate_definition@valid.toml.snap +++ b/src/snapshots/kickstart__definition__tests__can_validate_definition@valid.toml.snap @@ -3,6 +3,4 @@ source: src/definition.rs expression: "&errs" input_file: src/snapshots/validation/valid.toml --- -Ok( - [], -) +[]