fix: "when bool is" was not properly assigning term to body when not a complex clause

Add some end to end tests to test uplc
This commit is contained in:
microproofs
2023-04-23 12:51:23 -04:00
parent 9bb1a88f23
commit ff87a4c60f
2 changed files with 72 additions and 1 deletions

View File

@@ -1060,3 +1060,72 @@ fn expect_empty_list_on_new_list() {
false,
);
}
#[test]
fn when_bool_is_true() {
let src = r#"
test it() {
when True is {
True ->
True
False ->
error
}
}
"#;
assert_uplc(
src,
Term::var("subject")
.delayed_if_else(Term::bool(true), Term::Error)
.lambda("subject")
.apply(Term::bool(true)),
false,
);
}
#[test]
fn when_bool_is_true_switched_cases() {
let src = r#"
test it() {
when True is {
False ->
error
True ->
True
}
}
"#;
assert_uplc(
src,
Term::var("subject")
.delayed_if_else(Term::bool(true), Term::Error)
.lambda("subject")
.apply(Term::bool(true)),
false,
);
}
#[test]
fn when_bool_is_false() {
let src = r#"
test it() {
when False is {
False ->
error
True ->
True
}
}
"#;
assert_uplc(
src,
Term::var("subject")
.delayed_if_else(Term::bool(true), Term::Error)
.lambda("subject")
.apply(Term::bool(false)),
true,
);
}