Background
Three inputs are read with no schema defining them at all: the CSV a converter consumes, the
i18ntext/UI.*.json string tables, and the bulk-decide import file.
ADR 021's
rule 4 makes the absence of a schema the work rather than an exemption — including for CSV, which has
no official schema language and therefore needs a contract this project defines.
Depends on #384's sub-issue 1, which supplies the entry point these validate through. Independent of
sub-issue 3.
What needs to be done
- A defined contract for the CSV converter's input — column set, which columns are required, and how
a violation is expressed — plus its validator, since no official one exists to borrow.
- A JSON schema for
i18ntext/UI.*.json.
- A JSON schema for the bulk-decide import file.
- All three bound to their readers and validated through the entry point.
Expected tests
| Test class / document |
Test method / what it verifies |
Starts |
| FileValidationTests |
CsvViolatingItsContract_IsRejectedWhole |
❌ |
| FileValidationTests |
CsvConformingToItsContract_IsAccepted |
❌ (the control) |
| FileValidationTests |
UiStringTableViolatingItsSchema_IsRejected |
❌ |
| FileValidationTests |
BulkDecideFileViolatingItsSchema_IsRejected |
❌ |
Definition of done
Background
Three inputs are read with no schema defining them at all: the CSV a converter consumes, the
i18ntext/UI.*.jsonstring tables, and the bulk-decide import file.ADR 021's
rule 4 makes the absence of a schema the work rather than an exemption — including for CSV, which has
no official schema language and therefore needs a contract this project defines.
Depends on #384's sub-issue 1, which supplies the entry point these validate through. Independent of
sub-issue 3.
What needs to be done
a violation is expressed — plus its validator, since no official one exists to borrow.
i18ntext/UI.*.json.Expected tests
Definition of done