feat(scenarios): add firmware update success scenario#133
feat(scenarios): add firmware update success scenario#133YANGCHUNHONG3000 wants to merge 2 commits into
Conversation
|
Thanks for this, and for writing up the reasoning in the description. The scenario Four things before I merge. The first two are on the PR, the last two are on me
I will approve the workflow run so you get CI output on the next push. One note on scope, separate from this PR. You claimed #104, #106, #107 and #108 |
…e state (#135) PR #133, the first external contribution to a good-first-issue, failed CI and needed four review items. Three of the four came from gaps in the contributor guide rather than from anything the contributor did. CONTRIBUTING.md now documents `pnpm format:check`, which CI enforces and the guide never named, with both command lists ordered to match the CI job step for step and a note that CI stops at the first failure. The hard-coded counts are out of the architecture table: the detection entry claimed 15 rules and there have been 16 since REPEATED_BOOT_NOTIFICATION landed in #114, and those counts have now drifted twice. "Adding a Scenario" names all four files carrying the scenario count and flags that only two of them fail the suite when missed. Station IDs are documented as unique per scenario. Good-first-issues carry a claim policy of one open claim at a time. Also corrects the v0.4.x release state in CURRENT_STATE.md, which reported 0.4.1 with a 0.4.2 patch in progress. 0.4.2 is published and holds the latest dist-tag, its tag and GitHub release exist, and both bugs it tracked (#127, #128) are closed. The active milestone now reads v0.5.0 with v0.4.x complete, What's Done gains the v0.4.x release record it never had, and What's Next drops the request to cut v0.4.0, which shipped on 2026-07-17. No changeset: neither file is in the package `files` list, so nothing here ships to npm. Closes #134 Closes #136
|
@sepehr-safari Thanks for the thorough review! I've pushed a fix commit addressing items 2–4:
For item 1 (Prettier formatting), I noticed the new scenario file doesn't seem to have message arrays wrapped at 80 columns in my local view — could you point me to the specific lines that need Also, thanks for clarifying the claim workflow — noted for next time. I'd like to take #104 next once this merges. |
Add a new scenario to verify that a station undergoing a successful firmware update does not trigger any false positives:
expectedFailures: []— The trace describes a clean firmware update flow (BootNotification → FirmwareStatusNotification(Dowloaded) → FirmwareStatusNotification(Installed) → Heartbeat), which should not trigger any detection rule.assertions: [{ type: 'no_failures', params: {} }]— Verifies that no failures are detected, acting as a regression guard against overly aggressive detection rules.tests/external-fixture/test.mjswas also updated (line 161:15→16) because it has a hard-coded scenario count assertion.