YAML values like '1.0' (unquoted) parse as double, not String.
Changed parseStringList to use string interpolation ('$e') instead
of 'e as String', so numeric YAML scalars in labels/milestones
don't crash ticket parsing.
Also quote all '1.0' label values in existing ticket files so they
are unambiguously strings in YAML.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
---
|
|
id: DEW-0025
|
|
title: Add integration tests (init → create → list → move → link → delete)
|
|
type: task
|
|
created: 2026-04-25T19:53:08.295571Z
|
|
milestones:
|
|
- 1.0.0
|
|
labels:
|
|
- 1.0
|
|
- tests
|
|
---
|
|
|
|
Add end-to-end integration tests that exercise the full CLI against real temp directories.
|
|
|
|
Create packages/cli/test/integration_test.dart (or packages/kanban/test/integration_test.dart).
|
|
|
|
Test flows:
|
|
1. `dew init <tmpdir>` → .project/dew.yaml and .project/kanban/ are created
|
|
2. `dew kanban create --title "Test" --type task` → ticket file appears in backlog
|
|
3. `dew kanban list` → returns the created ticket
|
|
4. `dew kanban move --id <id> --column doing` → ticket moves
|
|
5. `dew kanban link --id <id> --target <id2> --type relates_to` → link appears in both tickets
|
|
6. `dew kanban unlink --id <id> --target <id2>` → link removed from both
|
|
7. `dew kanban delete --id <id>` → ticket file removed
|
|
|
|
Use setUp/tearDown with dart:io Directory.systemTemp for isolation. Invoke commands via the Dart API (instantiate CommandRunner directly with a MemoryFileSystem or real temp dir), not via subprocess, for speed.
|