ucg/integration_tests/select_expressions_test.ucg

97 lines
2.0 KiB
Plaintext
Raw Normal View History

let goodwant = "door1";
let badwant = "door4";
let got = select (goodwant, "OOPS") => {
door1 = "grand prize",
door2 = "you lose",
};
let defaultgot = select (badwant, "OOPS") => {
door1 = "grand prize",
door2 = "you lose",
};
assert {
ok = got == "grand prize",
desc = "got == \"grand prize\"",
};
assert {
ok = defaultgot == "OOPS",
desc = "defaultgot == \"OOPS\"",
};
// select inside a function
let condfunc = func (arg) => {
output = select (arg, NULL) => {
opt1 = "yay",
opt2 = "boo",
},
};
let result = condfunc("opt1");
assert {
ok = condfunc("opt1") == {output = "yay"},
desc = "condfunc(\"opt1\") == {output = \"yay\"}",
};
assert {
ok = condfunc("opt2") == {output = "boo"},
desc = "condfunc(\"opt2\") == {output = \"boo\"}",
};
assert {
ok = condfunc("invalid") == {output = NULL},
desc = "condfunc(\"invalid\") == {output = NULL}",
};
let iflike = select (true, "default") => {
true = "I was true",
false = "I was false",
};
assert {
ok = iflike == "I was true",
desc = "iflike == \"I was true\"",
};
let no_default_test = func(b) => select (b) => {
true = "I was true",
false = "I was false",
};
assert {
ok = no_default_test(true) == "I was true",
desc = "no default successfully detects true",
};
assert {
ok = no_default_test(false) == "I was false",
desc = "no default successfully detects false",
};
let tpl_fields = {
test = "foo",
};
let no_default_select_result = select (tpl_fields.test == "foo") => {
true = true,
false = false,
};
assert {
ok = no_default_select_result,
desc = "no default successfully select true",
};
let nested_select_result_no_defaults = select (true) => {
true = true,
false = select (false) => {
true = fail "whoops! this should never have triggered.",
false = true,
},
};
assert {
ok = nested_select_result_no_defaults,
desc = "Nested select result parses and resturns true",
};