3.5 KiB
3.5 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-enabled-hooks | Enabled hooks for Azure DevOps, GitHub, GitLab | done | 1 | plan.md | ../../specs/integrations/requirements/enable-disable-toggle.md |
Task 01: Enabled hooks for Azure DevOps, GitHub, GitLab
- Acceptance:
useAzureDevOpsEnabled(),useGitHubEnabled(),useGitLabEnabled()each exist, default toenabled: trueon first read, persist viasetEnabled, and broadcast their own sync event — one-line wrappers overuseIntegrationEnabled, mirroringuseJiraEnabled().- Each hook has a unit test asserting the default-true value and a
persisted round-trip via
setEnabled.
- Verification:
cd apps && pnpm --filter @kandev/web test -- hooks/domains/azure-devops/use-azure-devops-enabled hooks/domains/github/use-github-enabled hooks/domains/gitlab/use-gitlab-enabled - Files likely touched:
apps/web/hooks/domains/azure-devops/use-azure-devops-enabled.ts(new)apps/web/hooks/domains/azure-devops/use-azure-devops-enabled.test.ts(new)apps/web/hooks/domains/github/use-github-enabled.ts(new)apps/web/hooks/domains/github/use-github-enabled.test.ts(new)apps/web/hooks/domains/gitlab/use-gitlab-enabled.ts(new)apps/web/hooks/domains/gitlab/use-gitlab-enabled.test.ts(new)
- Dependencies: None.
- Parallelism: sequential (first task; nothing else can start before it).
- Inputs:
- Spec: "Data model" (storage keys), "API surface" (hook shapes).
- Plan: "Task 01" section.
- Pattern to mirror exactly:
apps/web/hooks/domains/jira/use-jira-enabled.tsand the generic implementation it wraps,apps/web/hooks/domains/integrations/use-integration-enabled.ts. - If a test already exists for a sibling wrapper (e.g.
use-linear-enabled.test.ts), mirror its structure; if no wrapper-level test exists anywhere in the codebase today (only the generic hook is tested), write the minimal smoke test described in the plan's Tests section rather than re-testinguseIntegrationEnabled's full behavior.
- Output contract: summary, files changed, exact test command run and its
output, blockers/risks, and update this task's
statustodoneplus the corresponding checkbox inplan.md.
Results
- Added
useAzureDevOpsEnabled/useGitHubEnabled/useGitLabEnabledas one-line wrappers overuseIntegrationEnabled, mirroringuseJiraEnabledexactly (same storage-key/legacy-prefix/sync-event shape). No prior per-integration enabled key existed for these three, so the legacy-prefix migration scan is inert but present for signature symmetry. - Added a unit test per hook (default-true, persisted-false round-trip,
cross-tab custom-event propagation), mirroring
use-linear-enabled.test.tsminus the legacy-migration case (no real legacy key ever existed for these three integrations). - Command:
cd apps && pnpm --filter @kandev/web test -- hooks/domains/azure-devops/use-azure-devops-enabled hooks/domains/github/use-github-enabled hooks/domains/gitlab/use-gitlab-enabled→Test Files 3 passed (3),Tests 12 passed (12). - Files changed:
apps/web/hooks/domains/azure-devops/use-azure-devops-enabled.ts,apps/web/hooks/domains/azure-devops/use-azure-devops-enabled.test.ts;apps/web/hooks/domains/github/use-github-enabled.ts,apps/web/hooks/domains/github/use-github-enabled.test.ts;apps/web/hooks/domains/gitlab/use-gitlab-enabled.ts,apps/web/hooks/domains/gitlab/use-gitlab-enabled.test.ts(all new). - Blockers/risks: none.