gate() does not check draft enums, so a misspelled evidence class never gates
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- accessibility, testing
Research direction
Start by reading the gate() boundary and the existing id validation that refuses invalid input; then locate the draft enum definitions for evidenceClass, severity, and layer. Check every closed enum field there and return InputRefusedError with the field and draft position, without echoing the value. Done means invalid draft enums are refused consistently, with tests covering the fields and error details.
Written by the indexing model from the issue text.
Description
What happens
gate() now checks ids at its boundary, but not the enum fields on each draft. A library caller that passes a draft with a misspelled evidenceClass, for example 'deterministic ' with a trailing space, gets a draft that never gates.
Why it matters
A deterministic barrier that does not gate is a false green. The command path builds drafts inside the engine, so this affects library callers, not usabl check today.
Fix direction
Check every draft enum field (evidenceClass, severity, layer, and any other closed set) at the gate boundary. Refuse an unknown value with InputRefusedError, naming the field and position without echoing the value, the same way ids are refused.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 2h 48m
- Merged PRs (30d)
- 8
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from usabl-dev/usabl
-
area: engine bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Stop hook allows a stop on an unknown verdict, and the self-check prints IDLE for a null verdictOpenarea: assistants bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Overlay: browser context failures are counted per plugin, not per browser, and close is not sharedOpenarea: overlay bug
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
-
area: engine enhancement performance
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
enhancement good first issue help wanted roadmap v0.2.x
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Automattic/data-liberation-agent#953 ·
Maintainers usually reply within 1 day
-
documentation
Difficulty 1/5 Under an hour Newbie friendliness 90/100
funmary-app/funmary#399 ·
Maintainers usually reply within 1 day
-
area:curator enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
CassioDalla/Scrinalia#150 ·
Maintainers usually reply within 1 day
-
status: needs-triage v1-bug-bash
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
a2ui-project/a2ui#3533 ·
Maintainers usually reply within 1 day
-
backend enhancement priority:P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
geolens-io/geolens#3310 ·
Maintainers usually reply within 1 day