127 lines
2.3 KiB
Rust
127 lines
2.3 KiB
Rust
use super::*;
|
|
|
|
#[test]
|
|
fn unexport_environment_variable_linewise() {
|
|
Test::new()
|
|
.justfile(
|
|
"
|
|
unexport JUST_TEST_VARIABLE
|
|
|
|
@recipe:
|
|
echo ${JUST_TEST_VARIABLE:-unset}
|
|
",
|
|
)
|
|
.env("JUST_TEST_VARIABLE", "foo")
|
|
.stdout("unset\n")
|
|
.run();
|
|
}
|
|
|
|
#[test]
|
|
fn unexport_environment_variable_shebang() {
|
|
Test::new()
|
|
.justfile(
|
|
"
|
|
unexport JUST_TEST_VARIABLE
|
|
|
|
recipe:
|
|
#!/usr/bin/env bash
|
|
echo ${JUST_TEST_VARIABLE:-unset}
|
|
",
|
|
)
|
|
.env("JUST_TEST_VARIABLE", "foo")
|
|
.stdout("unset\n")
|
|
.run();
|
|
}
|
|
|
|
#[test]
|
|
fn duplicate_unexport_fails() {
|
|
Test::new()
|
|
.justfile(
|
|
"
|
|
unexport JUST_TEST_VARIABLE
|
|
|
|
recipe:
|
|
echo \"variable: $JUST_TEST_VARIABLE\"
|
|
|
|
unexport JUST_TEST_VARIABLE
|
|
",
|
|
)
|
|
.env("JUST_TEST_VARIABLE", "foo")
|
|
.stderr(
|
|
"
|
|
error: Variable `JUST_TEST_VARIABLE` is unexported multiple times
|
|
——▶ justfile:6:10
|
|
│
|
|
6 │ unexport JUST_TEST_VARIABLE
|
|
│ ^^^^^^^^^^^^^^^^^^
|
|
",
|
|
)
|
|
.status(1)
|
|
.run();
|
|
}
|
|
|
|
#[test]
|
|
fn export_unexport_conflict() {
|
|
Test::new()
|
|
.justfile(
|
|
"
|
|
unexport JUST_TEST_VARIABLE
|
|
|
|
recipe:
|
|
echo variable: $JUST_TEST_VARIABLE
|
|
|
|
export JUST_TEST_VARIABLE := 'foo'
|
|
",
|
|
)
|
|
.stderr(
|
|
"
|
|
error: Variable JUST_TEST_VARIABLE is both exported and unexported
|
|
——▶ justfile:6:8
|
|
│
|
|
6 │ export JUST_TEST_VARIABLE := 'foo'
|
|
│ ^^^^^^^^^^^^^^^^^^
|
|
",
|
|
)
|
|
.status(1)
|
|
.run();
|
|
}
|
|
|
|
#[test]
|
|
fn unexport_doesnt_override_local_recipe_export() {
|
|
Test::new()
|
|
.justfile(
|
|
"
|
|
unexport JUST_TEST_VARIABLE
|
|
|
|
recipe $JUST_TEST_VARIABLE:
|
|
@echo \"variable: $JUST_TEST_VARIABLE\"
|
|
",
|
|
)
|
|
.args(["recipe", "value"])
|
|
.stdout("variable: value\n")
|
|
.run();
|
|
}
|
|
|
|
#[test]
|
|
fn unexport_does_not_conflict_with_recipe_syntax() {
|
|
Test::new()
|
|
.justfile(
|
|
"
|
|
unexport foo:
|
|
@echo {{foo}}
|
|
",
|
|
)
|
|
.args(["unexport", "bar"])
|
|
.stdout("bar\n")
|
|
.run();
|
|
}
|
|
|
|
#[test]
|
|
fn unexport_does_not_conflict_with_assignment_syntax() {
|
|
Test::new()
|
|
.justfile("unexport := 'foo'")
|
|
.args(["--evaluate", "unexport"])
|
|
.stdout("foo")
|
|
.run();
|
|
}
|