Files
code-templates/src/parsers/test/parsers_tests.rs

60 lines
2.1 KiB
Rust

#[cfg(test)]
pub mod tests {
use crate::parsers::{apply_all_templates_to_string, apply_name_template};
pub const FILENAME_EXPRESSIONS: [&str; 9] = [
"__name__",
"__upperCase_name__",
"__lowerCase_name__",
"__camelCase_name__",
"__pascalCase_name__",
"__snakeCase_name__",
"__upperSnakeCase_name__",
"__kebabCase_name__",
"__lowerDotCase_name__",
];
pub const _TEMPLATE_EXPRESSIONS: [&str; 9] = [
"{{name}}",
"{{upperCase name}}",
"{{lowerCase name}}",
"{{camelCase name}}",
"{{pascalCase name}}",
"{{snakeCase name}}",
"{{upperSnakeCase name}}",
"{{kebabCase name}}",
"{{lowerDotCase name}}",
];
#[test]
fn test_apply_filename_template() {
const FILENAME: &str = "this_is a-TeSt";
let expected_filename_output = [
"this_is a-TeSt", // normal
"THIS_IS A-TEST", // upper
"this_is a-test", // lower
"thisIsATeSt", // camel
"ThisIsATeSt", // Pascal
"this_is_a_te_st", // snake
"THIS_IS_A_TE_ST", // snake upper
"this-is-a-te-st", // kebab
"this.is.a.te.st", // lower dot
];
for (i, expression) in FILENAME_EXPRESSIONS.into_iter().enumerate() {
let output = apply_name_template(expression, FILENAME);
assert_eq!(output, expected_filename_output[i])
}
}
#[test]
fn test_apply_all_templates_to_string() {
const NAME: &str = "this_is a-TeSt";
const INPUT: &str = "{{name}} {{upperCase name}}{{lowerCase name}} {{camelCase name}}{{pascalCase name}} {{snakeCase name}}{{upperSnakeCase name}} {{kebabCase name}}{{lowerDotCase name}}";
const EXPECTED_OUTPUT: &str = "this_is a-TeSt THIS_IS A-TESTthis_is a-test thisIsATeStThisIsATeSt this_is_a_te_stTHIS_IS_A_TE_ST this-is-a-te-stthis.is.a.te.st";
let output = apply_all_templates_to_string(INPUT.to_string(), NAME);
assert_eq!(output, EXPECTED_OUTPUT);
}
}