| 02-generators |
01 |
testing |
| vitest |
| tdd |
| rclone |
| powershell |
| generators |
|
| phase |
provides |
| 01-foundation |
WizardState type, INITIAL_STATE, BackendType — imported by all four test files |
|
|
| Failing unit tests (RED) for buildRcloneConf covering azureblob, s3, s3-compatible backends |
| Failing unit tests (RED) for buildIntuneInstall covering configPath, includeInstall, UTF-8 write, credential safety |
| Failing unit tests (RED) for buildIntuneDetection covering configPath, exit codes, stdout-only constraint |
| Failing unit tests (RED) for buildRmmScript covering configPath, includeInstall, ErrorActionPreference=Stop |
| Barrel index.ts defining the public generators API for Phase 4 imports |
|
| 02-02 (rclone-conf implementation must satisfy rclone-conf.test.ts) |
| 02-03 (intune-install and intune-detection implementations must satisfy their test files) |
| 02-04 (rmm-script implementation must satisfy rmm-script.test.ts) |
| 04-ui (imports generators from src/generators/index.ts barrel) |
|
| added |
patterns |
|
|
| Nyquist TDD: all four generator test files written before any implementation exists |
| Fixture pattern: spread INITIAL_STATE then override only changed fields for typed WizardState fixtures |
| No Vitest imports needed — globals: true in vitest.config.ts provides describe/it/expect globally |
|
|
| created |
modified |
| src/generators/rclone-conf.test.ts |
| src/generators/intune-install.test.ts |
| src/generators/intune-detection.test.ts |
| src/generators/rmm-script.test.ts |
| src/generators/index.ts |
|
|
|
| s3-compatible uses type = s3 (not type = s3-compatible) — rclone uses the s3 backend with provider = Other for S3-compatible endpoints |
| Empty string params omitted from rclone conf output — sas_url and region omitted when blank |
| buildIntuneDetection must NOT use $ErrorActionPreference — avoids STDERR contamination in Intune detection scripts |
| buildRmmScript MUST use $ErrorActionPreference = 'Stop' — RMM scripts should halt on error unlike detection scripts |
| All credential values embedded as literals in generated scripts — no PS variable interpolation inside config content |
| Barrel index.ts exports all four generators — Phase 4 uses this single entry point |
|
| Fixture pattern: { ...INITIAL_STATE, remote: { name, backendType, params } } for typed WizardState test fixtures |
| Generator test structure: describe per backend/scenario, it() per substring assertion — granular and readable |
|
| CONF-01 |
| DEPL-01 |
| DEPL-02 |
| DEPL-03 |
| DEPL-04 |
| DEPL-05 |
|
2min |
2026-03-26 |