use super::*;
#[test]
fn pointer_pseudo_length_count_min_stays_guard_only_on_nil() {
let output = render_field_assertion(
label_field(),
"label.length",
&[],
false,
"count_min",
Some(serde_json::json!(1)),
);
assert!(
output.contains("if result.Label != nil {"),
"expected a guard on the optional pointer, got: {output}"
);
assert!(
!output.contains("} else {"),
"a pseudo-length measurement through an optional pointer must not gain a failing else, got: {output}"
);
}
#[test]
fn pointer_pseudo_count_count_equals_stays_guard_only_on_nil() {
let output = render_field_assertion(
label_field(),
"label.count",
&[],
false,
"count_equals",
Some(serde_json::json!(1)),
);
assert!(
output.contains("if result.Label != nil {"),
"expected a guard on the optional pointer, got: {output}"
);
assert!(
!output.contains("} else {"),
"a pseudo-count measurement through an optional pointer must not gain a failing else, got: {output}"
);
}
#[test]
fn pointer_pseudo_length_min_length_stays_guard_only_on_nil() {
let output = render_field_assertion(
label_field(),
"label.length",
&[],
false,
"min_length",
Some(serde_json::json!(1)),
);
assert!(
output.contains("if result.Label != nil {"),
"expected a guard on the optional pointer, got: {output}"
);
assert!(
!output.contains("} else {"),
"a pseudo-length measurement through an optional pointer must not gain a failing else, got: {output}"
);
}
#[test]
fn pointer_pseudo_size_max_length_stays_guard_only_on_nil() {
let output = render_field_assertion(
label_field(),
"label.size",
&[],
false,
"max_length",
Some(serde_json::json!(10)),
);
assert!(
output.contains("if result.Label != nil {"),
"expected a guard on the optional pointer, got: {output}"
);
assert!(
!output.contains("} else {"),
"a pseudo-size measurement through an optional pointer must not gain a failing else, got: {output}"
);
}