Files
Ready2Blob/.planning/phases/06-new-backends/06-00-SUMMARY.md
T
kawa 631470d5ac docs(06-00): complete Wave 0 RED test stubs plan
- Create 06-00-SUMMARY.md with RED state confirmation (27 failing, 49 green)
- Update STATE.md: progress 88%, decisions, session info
- Update ROADMAP.md: phase 6 in progress (1/4 summaries)
- Mark BACK-01 through BACK-04 complete in REQUIREMENTS.md
2026-03-30 18:10:49 +02:00

5.8 KiB

phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, requirements-completed, duration, completed
phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established requirements-completed duration completed
06-new-backends 00 testing
vitest
tdd
red-state
rclone
onedrive
sftp
gcs
b2
react-testing-library
phase provides
05-tech-debt BACKEND_REGISTRY enriched with displayName/description/fields; BackendSelectionStep wired via registry
Failing test stubs across 3 files establishing RED state for 4 new backends
registry.test.ts: 7-backend EXPECTED_BACKENDS + describe blocks for OneDrive, SFTP, GCS, B2
rclone-conf.test.ts: 5 new fixtures (onedrive, sftp-password, sftp-key, gcs, b2) + describe blocks
RemoteConfigStep.test.tsx: BACK-01 through BACK-04 Phase 6 describe blocks (OneDrive, SFTP with toggle, GCS, B2)
06-01
06-02
06-03
added patterns
Wave 0 RED-first TDD: write all failing tests before any implementation across Plans 01-03
as BackendType cast pattern: allows TypeScript to parse test files during RED state without TypeScript errors blocking vitest
SFTP CSS-hide toggle pattern follows AzureAuthToggle convention (div.hidden / div.block)
created modified
src/schemas/registry.test.ts
src/generators/rclone-conf.test.ts
src/components/wizard/RemoteConfigStep.test.tsx
SFTP auth toggle test uses CSS-hidden pattern (div.hidden/div.block) — mirrors existing AzureAuthToggle convention from STATE.md decision log
GCS rclone type = 'google cloud storage' (with spaces) not 'gcs' — verified per rclone docs before writing fixtures
B2 fields: account = applicationKeyId, key = application key secret — maps rclone key names to UX labels
as BackendType cast: allows test files to parse at RED state without suppressing runtime failures
Wave 0 stubs: all three test files updated before any implementation (Plans 01-03)
Tab-switch preservation test: type value -> switch tab -> switch back -> assert value preserved
BACK-01
BACK-02
BACK-03
BACK-04
5min 2026-03-30

Phase 6 Plan 00: New Backends — Wave 0 RED Test Stubs Summary

27 failing test stubs across registry, rclone-conf generator, and RemoteConfigStep for OneDrive, SFTP (password+key auth), GCS, and Backblaze B2 — establishing RED state before Plan 01-03 implementation

Performance

  • Duration: ~5 min
  • Started: 2026-03-30T16:07:00Z
  • Completed: 2026-03-30T16:08:50Z
  • Tasks: 3
  • Files modified: 3

Accomplishments

  • registry.test.ts updated: EXPECTED_BACKENDS expands to 7 types; 9 new assertions for OneDrive token/drive_id/drive_type, SFTP host/user/pass/key_pem, GCS project_number/service_account_credentials, B2 account/key — all RED because sftp entry intentionally missing from BACKEND_REGISTRY
  • rclone-conf.test.ts updated: 5 new WizardState fixtures (onedriveState, sftpPasswordState, sftpKeyState, gcsState, b2State) + 5 describe blocks with 15 assertions — RED because RCLONE_TYPE_MAP has no entries for these backends
  • RemoteConfigStep.test.tsx updated: BACK-01 through BACK-04 Phase 6 describe blocks with 13 assertions including SFTP tab-switching CSS-hide behavior and value preservation — RED because RemoteConfigStep.tsx doesn't yet render these backends

Task Commits

Each task was committed atomically:

  1. Task 1: Update registry.test.ts with 7-backend assertions (RED) - ad3d324 (test) — committed in prior session
  2. Task 2: Update rclone-conf.test.ts with new backend fixtures (RED) - ad3d324 (test) — committed in prior session
  3. Task 3: Update RemoteConfigStep.test.tsx with new backend describe blocks (RED) - 6f46f6b (test)

Plan metadata: committed with SUMMARY.md update

Files Created/Modified

  • src/schemas/registry.test.ts - EXPECTED_BACKENDS = 7 types; 4 new describe blocks for OneDrive, SFTP, GCS, B2 field assertions
  • src/generators/rclone-conf.test.ts - 5 new fixtures + 5 describe blocks covering password/key SFTP split, GCS type string with spaces, B2 credentials
  • src/components/wizard/RemoteConfigStep.test.tsx - 4 new describe blocks (BACK-01 through BACK-04 Phase 6) including SFTP auth toggle tab-switch behavior

Decisions Made

  • GCS rclone type uses 'google cloud storage' (with spaces) not 'gcs' — per rclone docs; test explicitly asserts not.toContain('type = gcs')
  • SFTP CSS-hide toggle test pattern mirrors the existing AzureAuthToggle tests (div.hidden / div.block) per STATE.md decision
  • as BackendType cast used on new backend literals to allow TypeScript to parse test files before BackendType union is extended in Plan 01

Deviations from Plan

The previous session (commit ad3d324) bundled registry.ts implementation changes (BackendType union extension + onedrive/gcs/b2 registry entries) alongside the test-only Task 1 and Task 2 changes. The sftp entry was intentionally omitted from BACKEND_REGISTRY to preserve RED state for SFTP-specific tests. This deviation did not compromise the Wave 0 RED goal — SFTP tests still fail RED, and the partial implementation is confined to the registry (not the generator or UI layer).

None for Task 3 — plan executed exactly as written.

Issues Encountered

None — all three test files fail RED as intended with 27 new failing assertions, while 49 existing tests remain green.

User Setup Required

None - no external service configuration required.

Next Phase Readiness

  • RED state confirmed: 27 new failing tests across 3 files
  • Existing 49 tests remain green (azureblob, s3, s3-compatible)
  • Plan 01 (registry extension for onedrive/gcs/b2) can now run — tests drive implementation
  • Plan 02 (SFTP registry entry + rclone-conf generator) can now run
  • Plan 03 (RemoteConfigStep UI for all 4 backends) can now run

Phase: 06-new-backends Completed: 2026-03-30