Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .claude/test-cases/AutoArchive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Auto-Archive — Test Cases

**Location:** Project board toolbar → `...` (More) → Auto-archive · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Settings Modal

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------|-------------------------------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|---------------|--------|
| AA_001 | Enable auto-archive with a threshold | Project open; user can edit settings | 1. Open `...` → Auto-archive 2. Turn the toggle on 3. Set days to 30 4. Save and reopen | Success toast on save; reopened modal shows toggle on with the saved day value | | ⏳ |
| AA_002 | Disable auto-archive | AA_001 done | 1. Reopen the modal 2. Turn the toggle off 3. Save and reopen | Setting persists as off | | ⏳ |
| AA_003 | Invalid day threshold is rejected | Auto-archive modal open | 1. Enter 0, a negative number or blank in the days field 2. Try to save | Value is rejected or normalized — no nonsensical threshold saved, no crash | | ⏳ |
| AA_004 | Setting is per project | Two projects; auto-archive on in project 1 | 1. Open `...` → Auto-archive in project 2 | Project 2 shows its own (default/off) state, unaffected by project 1 | | ⏳ |

---

**Total:** 4 test cases · **All status:** ⏳ Pending
20 changes: 20 additions & 0 deletions .claude/test-cases/BurndownChart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Burndown Chart — Test Cases

**Location:** Project board toolbar → `...` (More) → Burndown · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Chart Rendering

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|---------------|--------|
| BD_001 | Chart renders for the current sprint | Sprint with dated tasks, some completed | 1. Open the sprint board 2. Open `...` → Burndown | Modal shows the burndown chart with date axis, remaining-work line and ideal line | | ⏳ |
| BD_002 | Completing a task lowers the remaining line | BD_001 done; note today's remaining count | 1. Close the modal 2. Mark one open task completed 3. Reopen `...` → Burndown | Today's remaining count is one lower than before | | ⏳ |
| BD_003 | Sprint without tasks is handled gracefully | A sprint with zero tasks | 1. Open that sprint's board 2. Open `...` → Burndown | Empty/zero chart or empty-state message — no crash | | ⏳ |
| BD_004 | Modal closes and reopens cleanly | Burndown modal open | 1. Close via ✕ 2. Reopen 3. Close by clicking the overlay | Both close actions work; reopening renders the chart correctly again | | ⏳ |

---

**Total:** 4 test cases · **All status:** ⏳ Pending
21 changes: 21 additions & 0 deletions .claude/test-cases/CommentReactions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Comment Reactions — Test Cases

**Location:** Task comments / project Comments tab · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Add & Toggle Reactions

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|--------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------|--------|
| CR_001 | Add an emoji reaction to a comment | A task with at least one comment | 1. Hover the comment 2. Click the reaction control 3. Pick an emoji (e.g. 👍) | Emoji chip appears under the comment with count 1, highlighted as your own reaction | | ⏳ |
| CR_002 | Clicking your own reaction removes it | CR_001 done | 1. Click the same emoji chip again | Your reaction is removed; chip disappears or its count decreases by one | | ⏳ |
| CR_003 | Counts aggregate across users | Two users can see the same comment | 1. As user 1 react 👍 2. As user 2 (second browser) react 👍 on the same comment | Chip shows 👍 2; each user sees only their own reaction highlighted | | ⏳ |
| CR_004 | Reactions update live for other viewers | Two browser windows on the same comment thread | 1. In window 1 add a reaction 2. Watch window 2 without reloading | The reaction chip appears in window 2 within a couple of seconds | | ⏳ |
| CR_005 | Picker stays inside the viewport | A comment near the bottom/right screen edge | 1. Open the reaction picker on that comment | Picker renders fully visible — not clipped behind panels or cut off by the viewport | | ⏳ |

---

**Total:** 5 test cases · **All status:** ⏳ Pending
29 changes: 29 additions & 0 deletions .claude/test-cases/Epics.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Epics — Test Cases

**Location:** Project board toolbar → `...` (More) → Epics · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Epic Management

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|------------------------------------------|---------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------|--------|
| EP_001 | Create an epic | Project open on its board | 1. Open `...` → Epics 2. Create an epic with a name | Epic appears in the panel list with zero progress; success toast | | ⏳ |
| EP_002 | Rename an epic | EP_001 done | 1. Edit the epic name 2. Save | List shows the new name | | ⏳ |
| EP_003 | Delete an epic keeps its tasks | An epic with assigned tasks | 1. Delete the epic and confirm | Epic disappears; its former tasks remain intact, just without an epic | | ⏳ |

---

## Task Assignment & Progress

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|------------------------------------------|---------------------------------------|------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------|--------|
| EP_004 | Assign tasks to an epic | EP_001 done; project has open tasks | 1. Assign two tasks to the epic | Epic shows 2 total tasks; the tasks carry the epic reference | | ⏳ |
| EP_005 | Completing a task updates progress | EP_004 done | 1. Mark one assigned task completed 2. Reopen the Epics panel | Epic shows 1 of 2 done | | ⏳ |
| EP_006 | Moving a task between epics fixes counts | Two epics; a task assigned to epic 1 | 1. Reassign the task to epic 2 | Epic 1 total decreases by one and epic 2 increases by one | | ⏳ |

---

**Total:** 6 test cases · **All status:** ⏳ Pending
29 changes: 29 additions & 0 deletions .claude/test-cases/GlobalSearch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Global Search (Search All) — Test Cases

**Location:** Project board toolbar → `...` (More) → Search all · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Searching

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|---------------|--------|
| GS_001 | Results grouped by tasks, projects, comments | A keyword (e.g. "web") exists in a task, a project and a comment | 1. Open `...` → Search all 2. Type the keyword (2+ characters) | Grouped results appear under TASKS, PROJECTS and CHAT; task rows show key, name, status chip | | ⏳ |
| GS_002 | No search under 2 characters | Search modal open | 1. Type a single character | No results render until the query is at least 2 characters | | ⏳ |
| GS_003 | Matching is case-insensitive substring | A task named in lowercase exists | 1. Search an UPPERCASE fragment of its name | The task is found | | ⏳ |
| GS_004 | No-results state | Search modal open | 1. Search a nonsense string like "zzqqxx" | A clear "no results" message; no stale results from the previous query | | ⏳ |

---

## Opening Results

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|---------------|--------|
| GS_005 | Clicking a task result opens the task | GS_001 done | 1. Click a task row in the results | Modal closes; app routes to the task detail (works for folder and non-folder sprints) | | ⏳ |
| GS_006 | Clicking a project result opens its board | GS_001 done | 1. Search a project by name 2. Click the project row | App opens that project's first sprint with the List view tab — no "Page not found" | | ⏳ |

---

**Total:** 6 test cases · **All status:** ⏳ Pending
20 changes: 20 additions & 0 deletions .claude/test-cases/JiraImporter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Jira Importer — Test Cases

**Location:** Project board toolbar → `...` (More) → Import Jira · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Import Flow

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|----------------------------------------|----------------------------------------------------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|---------------|--------|
| JI_001 | Import a valid Jira CSV | A Jira CSV export with 3–5 rows; sprint selected | 1. Open `...` → Import Jira 2. Choose the CSV 3. Start the import | Success message with the created count; new tasks appear on the board with names from Jira summaries | | ⏳ |
| JI_002 | Imported task fields are sensible | JI_001 done | 1. Open one imported task | Name = Jira summary; description carried over; valid status in the chosen sprint — no blank cards | | ⏳ |
| JI_003 | Invalid file shows a readable error | Import modal open | 1. Try an empty CSV 2. Try a non-CSV file renamed to .csv | Readable error toast in both cases; nothing is created; modal stays usable | | ⏳ |
| JI_004 | Malformed rows are skipped, not fatal | A CSV where one row lacks a Summary | 1. Import it | Valid rows import; the bad row is skipped; the import does not abort halfway | | ⏳ |

---

**Total:** 4 test cases · **All status:** ⏳ Pending
21 changes: 21 additions & 0 deletions .claude/test-cases/Languages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Languages (Japanese / Korean / Brazilian Portuguese) — Test Cases

**Location:** Settings → My Settings → Language · **Last updated:** 2026-06-11

> **Status legend:** ⏳ Pending · ✅ Pass · ❌ Fail · ⚠️ Blocked · 🔄 Flaky

---

## Language Switching

| ID | Title | Precondition | Steps | Expected Result | Actual Result | Status |
|--------|-------------------------------------------|-----------------------|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|---------------|--------|
| LG_001 | Switch to Japanese | Logged in | 1. Open Settings → My Settings 2. Select Japanese 3. Save | Success toast; navigation and common labels switch to Japanese immediately, no reload needed | | ⏳ |
| LG_002 | Switch to Korean and Brazilian Portuguese | Logged in | 1. Repeat LG_001 choosing Korean, then Português (Brasil) | Same behavior for both locales | | ⏳ |
| LG_003 | Untranslated strings fall back to English | One new locale active | 1. Browse less common screens (e.g. the `...` menu features, settings) | Untranslated strings show English text — never blank, never a raw key like `Projects.more_features` | | ⏳ |
| LG_004 | Choice persists across sessions | LG_001 done | 1. Log out and back in (or hard-reload) | UI comes back in the chosen language | | ⏳ |
| LG_005 | Switch back to English | A new locale active | 1. Set the language back to English | Everything returns to English cleanly | | ⏳ |

---

**Total:** 5 test cases · **All status:** ⏳ Pending
Loading
Loading