Skip to content

Commit de0c8d5

Browse files
test: fix vacuous and weak assertions in ir/step.rs and ir/job.rs (#1070)
- job.rs / pool_variants_are_distinct: vacuous — different enum variants with #[derive(PartialEq)] are always unequal; renamed to pool_same_variant_different_values_are_not_equal and rewrote to test same-variant field discrimination (VmImage/Named with differing values are unequal; identical values are equal). - step.rs / bash_step_builder_round_trip: weak — env.len()==1 only counts entries without verifying the stored key or value; added env.get("FOO") == Some(&EnvValue::literal("bar")) and outputs[0].name == "AW_OUT" to verify actual content. - job.rs / new_starts_empty_depends_on_and_steps: incomplete — the analogous stage.rs test checks four fields; added condition.is_none(), variables.is_empty(), template_dependson_wrap.is_none(), and template_context.is_none() to match that coverage. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent ca0352c commit de0c8d5

2 files changed

Lines changed: 37 additions & 8 deletions

File tree

src/compile/ir/job.rs

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,14 +211,27 @@ mod tests {
211211
use super::*;
212212

213213
#[test]
214-
fn pool_variants_are_distinct() {
214+
fn pool_same_variant_different_values_are_not_equal() {
215+
// Equality semantics for same-variant: fields must match.
215216
let a = Pool::VmImage("ubuntu-22.04".into());
216-
let b = Pool::Named {
217-
name: "AZS-1ES-L".into(),
217+
let b = Pool::VmImage("windows-2022".into());
218+
assert_ne!(a, b, "different vmImage values should not be equal");
219+
220+
let c = Pool::Named {
221+
name: "Pool-A".into(),
222+
image: None,
223+
os: None,
224+
};
225+
let d = Pool::Named {
226+
name: "Pool-B".into(),
218227
image: None,
219228
os: None,
220229
};
221-
assert_ne!(a, b);
230+
assert_ne!(c, d, "different pool names should not be equal");
231+
232+
// Same values → equal.
233+
let e = Pool::VmImage("ubuntu-22.04".into());
234+
assert_eq!(a, e, "identical VmImage values should be equal");
222235
}
223236

224237
#[test]
@@ -228,8 +241,18 @@ mod tests {
228241
"Agent",
229242
Pool::VmImage("ubuntu-22.04".into()),
230243
);
231-
assert!(j.depends_on.is_empty());
232-
assert!(j.steps.is_empty());
244+
assert!(j.depends_on.is_empty(), "depends_on should start empty");
245+
assert!(j.steps.is_empty(), "steps should start empty");
246+
assert!(j.condition.is_none(), "condition should start as None");
247+
assert!(j.variables.is_empty(), "variables should start empty");
248+
assert!(
249+
j.template_dependson_wrap.is_none(),
250+
"template_dependson_wrap should start as None"
251+
);
252+
assert!(
253+
j.template_context.is_none(),
254+
"template_context should start as None"
255+
);
233256
}
234257

235258
#[test]

src/compile/ir/step.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,14 @@ mod tests {
238238
assert_eq!(s.display_name, "ado-aw");
239239
assert_eq!(s.script, "echo hi");
240240
assert_eq!(s.id.as_ref().map(|i| i.as_str()), Some("marker"));
241-
assert_eq!(s.env.len(), 1);
242-
assert_eq!(s.outputs.len(), 1);
241+
// Verify the actual key and value were stored, not just the count.
242+
assert_eq!(
243+
s.env.get("FOO"),
244+
Some(&EnvValue::literal("bar")),
245+
"env should map FOO -> literal(\"bar\")"
246+
);
247+
assert_eq!(s.outputs.len(), 1, "should have exactly one output");
248+
assert_eq!(s.outputs[0].name, "AW_OUT", "output name should be AW_OUT");
243249
}
244250

245251
#[test]

0 commit comments

Comments
 (0)