From 0322d91811e1c591bf5e5f86ba448e6ddf16ab6d Mon Sep 17 00:00:00 2001 From: Osman Ghani Granday Date: Fri, 29 Aug 2025 22:07:00 -0700 Subject: [PATCH] Add test for remove command in tests/remove.rs #3 --- tests/remove.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/remove.rs diff --git a/tests/remove.rs b/tests/remove.rs new file mode 100644 index 0000000..d5d6bcc --- /dev/null +++ b/tests/remove.rs @@ -0,0 +1,38 @@ +#[cfg(test)] +mod tests { + use std::fs; + use tasky_cli::{ + Task, + commands::remove_task, + storage::{load_tasks, save_tasks}, + }; + + #[test] + fn test_remove_task() { + let _ = fs::remove_file("tasks.json"); + + let mut tasks = vec![ + Task { + text: "Task 1".to_string(), + done: false, + }, + Task { + text: "Task 2".to_string(), + done: false, + }, + ]; + save_tasks(&tasks); + + let loaded = load_tasks(); + assert_eq!(loaded.len(), 2, "Expected two tasks initially"); + assert_eq!(loaded[0].text, "Task 1", "Initial Task 1 text mismatch"); + assert_eq!(loaded[1].text, "Task 2", "Initial Task 2 text mismatch"); + + remove_task(&mut tasks, 0); + + let loaded = load_tasks(); + assert_eq!(loaded.len(), 1, "Expected one task after removal"); + assert_eq!(loaded[0].text, "Task 2", "Expected Task 2 to remain"); + assert!(!loaded[0].done, "Remaining task should not be done"); + } +}