Skip to content

Commit 3b13e35

Browse files
test: fix vacuous assertions in create_work_item and update_work_item (#1603)
Replace bare assert!(result.is_err()) with unwrap_err() + message content checks so each test verifies the specific validation rule that was violated, not just that some error was returned. Also add descriptive messages to the bare ensure!() calls in CreateWorkItemParams::validate() so the tests have something meaningful to assert against. 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 e221af7 commit 3b13e35

2 files changed

Lines changed: 25 additions & 6 deletions

File tree

src/safe_outputs/create_work_item.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ pub struct CreateWorkItemParams {
3030

3131
impl Validate for CreateWorkItemParams {
3232
fn validate(&self) -> anyhow::Result<()> {
33-
ensure!(self.title.len() > 5);
34-
ensure!(self.description.len() > 30);
33+
ensure!(self.title.len() > 5, "title must be more than 5 characters");
34+
ensure!(
35+
self.description.len() > 30,
36+
"description must be more than 30 characters"
37+
);
3538
for tag in &self.tags {
3639
ensure!(
3740
!tag.contains(';'),
@@ -561,7 +564,11 @@ mod tests {
561564
tags: vec![],
562565
};
563566
let result: Result<CreateWorkItemResult, _> = params.try_into();
564-
assert!(result.is_err());
567+
let err = result.unwrap_err().to_string();
568+
assert!(
569+
err.contains("title must be more than 5 characters"),
570+
"Expected title length error, got: {err}"
571+
);
565572
}
566573

567574
#[test]
@@ -572,7 +579,11 @@ mod tests {
572579
tags: vec![],
573580
};
574581
let result: Result<CreateWorkItemResult, _> = params.try_into();
575-
assert!(result.is_err());
582+
let err = result.unwrap_err().to_string();
583+
assert!(
584+
err.contains("description must be more than 30 characters"),
585+
"Expected description length error, got: {err}"
586+
);
576587
}
577588

578589
#[test]
@@ -583,7 +594,11 @@ mod tests {
583594
tags: vec!["tag-one; tag-two".to_string()],
584595
};
585596
let result: Result<CreateWorkItemResult, _> = params.try_into();
586-
assert!(result.is_err());
597+
let err = result.unwrap_err().to_string();
598+
assert!(
599+
err.contains("semicolon"),
600+
"Expected semicolon error, got: {err}"
601+
);
587602
}
588603

589604
#[test]

src/safe_outputs/update_work_item.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,11 @@ mod tests {
643643
tags: None,
644644
};
645645
let result: Result<UpdateWorkItemResult, _> = params.try_into();
646-
assert!(result.is_err());
646+
let err = result.unwrap_err().to_string();
647+
assert!(
648+
err.contains("255 characters or fewer"),
649+
"Expected title length error, got: {err}"
650+
);
647651
}
648652

649653
#[test]

0 commit comments

Comments
 (0)