BMAD-METHOD/test
Brian Madison 8ab1de8501 fix(installer): forward-compat --set keys survive quick-update reinstalls
Found via end-to-end smoke test, not flagged by either bot review:
`--set bmm.future_thing=x` was persisted to config.toml on install #1
but silently dropped on the next quick-update reinstall, even though
the per-module _bmad/bmm/config.yaml retained it. The central
manifest's schema-strict partition stripped it because
collectModuleConfigQuick (the quick-update helper) never populated
setOverrideKeys for carried-forward unknown keys, and quickUpdate's
installConfig didn't thread setOverrideKeys into the install call.

This is the same bug class as the round-1 fix to collectModuleConfig
(CodeRabbit major #3155145084) but for the quick-update code path,
which has a separate collection helper.

Fix:
- Add OfficialModules._trackUnknownKeysAsOverrides(moduleName, schema)
  helper that walks collectedConfig[moduleName] and adds any non-schema
  key to setOverrideKeys[moduleName]. Without a schema, every key is
  treated as unknown (safe fallback for modules with no module.yaml).
- Call it from all four return paths in collectModuleConfigQuick:
  no-schema, parse-failed, hasNoConfig+subheader, silent+no-new-keys,
  and the regular end-of-method.
- Mirror ui.collectModuleConfigs's setOverrideKeys conversion in
  installer.quickUpdate so the Set→array round-trip lands in
  Config.build, and writeCentralConfig sees the exemption list.

Tests: +4 cases — collectModuleConfigQuick carry-forward of unknown
key, declared-key non-tracking under quick-update, and
_trackUnknownKeysAsOverrides no-schema fallback. Total 351 passing.

E2E smoke verified: --set <unknown>=x survives install→quick-update,
install→regular-update, and install→quick-update→regular-update with
a new --set added.
2026-04-28 19:22:34 -05:00
..
adversarial-review-tests feat(tasks): convert review-adversarial-general XML task to native skill (#1857) 2026-03-08 06:52:55 -06:00
fixtures/file-refs-csv chore: remove dead agent schema validation infrastructure 2026-03-17 20:20:12 -06:00
README.md chore: remove dead agent schema validation infrastructure 2026-03-17 20:20:12 -06:00
test-file-refs-csv.js refactor(skills): convert party-mode to native skill directory (#1906) 2026-03-11 22:48:29 -05:00
test-installation-components.js fix(installer): forward-compat --set keys survive quick-update reinstalls 2026-04-28 19:22:34 -05:00
test-installer-channels.js feat(installer): channel-based version resolution + interactive channel management (#2305) 2026-04-24 08:20:30 -05:00
test-rehype-plugins.mjs fix(docs): comprehensive documentation site review fixes (#1578) 2026-02-08 11:58:22 -06:00
test-workflow-path-regex.js refactor(installer): restructure installer with clean separation of concerns (#2129) 2026-03-27 06:50:07 -06:00

README.md

Test Suite

Tests for the BMAD-METHOD tooling infrastructure.

Quick Start

# Run all quality checks
npm run quality

# Run individual test suites
npm run test:install    # Installation component tests
npm run test:refs       # File reference CSV tests
npm run validate:refs   # File reference validation (strict)

Test Scripts

Installation Component Tests

File: test/test-installation-components.js

Validates that the installer compiles and assembles agents correctly.

File Reference Tests

File: test/test-file-refs-csv.js

Tests the CSV-based file reference validation logic.

Test Fixtures

Located in test/fixtures/:

test/fixtures/
└── file-refs-csv/    # Fixtures for file reference CSV tests