claude-task-master/.taskmaster/docs/research/2025-06-14_test-save-functionality.md
Eyal Toledano 5119cd2d8e v017 polish (#778)
* fix(research, tasks): Make research command and task updates tag-aware

* refactor(tasks): Prevent automatic task file generation across other locations

This commit refactors several core task management functions to prevent them from automatically regenerating individual task files after modifying the main `tasks.json`.

Previously, operations like `add-task`, `clear-subtasks`, `expand-task`, and `update-task-by-id` would immediately trigger `generateTaskFiles`. This could be slow and was often unnecessary.

The calls to `generateTaskFiles` have been removed or commented out from the core task functions. Users should now run `task-master generate` explicitly to update their individual task files.

Additionally, this commit includes fixes to the `move` command to make it fully tag-aware.

* fix: move and clear subtasks mcp commands

* chore: fix format

* chore: fix unit tests

---------

Co-authored-by: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com>
2025-06-15 03:47:56 +03:00

3.9 KiB

title query date time timestamp exchanges
Research Session test save functionality 6/14/2025 5:50:23 PM 2025-06-14T21:50:23.797Z 1

Research Session

Initial Query

Question: test save functionality

Response:

Testing Save Functionality in a Task Management System

Core Steps for Testing Save Functionality

  • Create or update a task in the system using the CLI or UI.
  • Trigger the save operation (e.g., by issuing a command or clicking a save button).
  • Verify that the data is correctly written to the persistent storage (e.g., tasks.json).
  • Reload or re-query the data to ensure the saved changes persist and are accurately reflected.
  • Validate that all required fields and relationships (such as dependencies and subtasks) are preserved and correctly structured.

Key Test Scenarios

  • Basic Save: Add a new task and confirm it appears in tasks.json with all fields populated.
  • Update Save: Modify an existing task (e.g., change status, description, or priority) and verify the changes are saved.
  • Subtask and Dependency Preservation: Update a parent task and ensure that completed subtasks and dependency links remain intact, especially after using commands like updateTask.
  • Batch Operations: Perform bulk updates or additions and confirm all affected tasks are saved correctly, with no data loss or corruption.
  • Validation: Attempt to save invalid data and ensure the system rejects it or provides meaningful error messages, confirming validation logic is enforced.

Recommended Practices

  • Use automated tests to simulate save operations for various scenarios, including edge cases (e.g., circular dependencies, missing required fields).
  • After each save, reload the data and compare it to the expected state to ensure integrity.
  • Log all save operations and errors for traceability and debugging.
  • Regularly back up the tasks.json file to prevent data loss during testing and development.

Relevant Features from Industry Standards

  • Task management systems typically provide robust save and update mechanisms, ensuring that all task attributes (including dependencies, subtasks, and comments) are consistently maintained[1][2][5].
  • Validation and error handling are critical to prevent corrupt or incomplete saves, especially when handling complex relationships or batch operations[1][5].
  • User feedback (such as success messages or error alerts) is important for confirming save actions and guiding users in case of issues[1][2].

Example Test Case

  1. Create a task with subtasks and dependencies.
  2. Mark some subtasks as complete.
  3. Use the updateTask command to modify the parent task.
  4. Save and reload the data.
  5. Assert that:
    • The parent task reflects the updates.
    • Completed subtasks remain marked as complete.
    • Dependencies are unchanged and valid.

Summary Table: Save Functionality Test Aspects

Aspect What to Test Expected Outcome
Basic Save Add/update task, save, reload Data persists and matches expectations
Subtask Preservation Update parent, check subtask status Completed subtasks remain complete
Dependency Handling Save with dependencies, reload Dependencies are intact and valid
Batch Operations Bulk save/update, reload All changes persist, no data loss
Validation Save invalid data Error is raised, data not corrupted

These steps and scenarios ensure that the save functionality is robust, reliable, and meets the requirements of a modern task management system[1][2][5].


Generated by Task Master Research Command
Timestamp: 2025-06-14T21:50:23.797Z