just/tests/quote.rs
Casey Rodarmor 3ef420ccb3
Add quote(s) function for escaping strings (#1022)
Replace all single quotes with `'\''` and prepend and append single
quotes to `s`. This is sufficient to escape special characters for many
shells, including most Bourne shell descendants.
2021-11-08 19:22:58 +00:00

44 lines
644 B
Rust

use crate::common::*;
#[test]
fn single_quotes_are_prepended_and_appended() {
Test::new()
.justfile(
"
x := quote('abc')
",
)
.args(&["--evaluate", "x"])
.stdout("'abc'")
.run();
}
#[test]
fn quotes_are_escaped() {
Test::new()
.justfile(
r#"
x := quote("'")
"#,
)
.args(&["--evaluate", "x"])
.stdout(r"''\'''")
.run();
}
#[test]
fn quoted_strings_can_be_used_as_arguments() {
Test::new()
.justfile(
r#"
file := quote("foo ' bar")
@foo:
touch {{ file }}
ls -1
"#,
)
.stdout("foo ' bar\njustfile\n")
.run();
}