just/tests/regexes.rs

67 lines
1020 B
Rust

use super::*;
#[test]
fn match_succeeds_evaluates_to_first_branch() {
Test::new()
.justfile(
"
foo := if 'abbbc' =~ 'ab+c' {
'yes'
} else {
'no'
}
default:
echo {{ foo }}
",
)
.stderr("echo yes\n")
.stdout("yes\n")
.run();
}
#[test]
fn match_fails_evaluates_to_second_branch() {
Test::new()
.justfile(
"
foo := if 'abbbc' =~ 'ab{4}c' {
'yes'
} else {
'no'
}
default:
echo {{ foo }}
",
)
.stderr("echo no\n")
.stdout("no\n")
.run();
}
#[test]
fn bad_regex_fails_at_runtime() {
Test::new()
.justfile(
"
default:
echo before
echo {{ if '' =~ '(' { 'a' } else { 'b' } }}
echo after
",
)
.stderr(
"
echo before
error: regex parse error:
(
^
error: unclosed group
",
)
.stdout("before\n")
.status(EXIT_FAILURE)
.run();
}