Beispiel
Show the failure mode for NimbleOptions custom validators when the callback returns the wrong shape.
sha256:ab8b63a5ea6af9d979d3ed5bdd4051d890fcd1ac4d8291ed5643eb0259d8afe3
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Show the failure mode for NimbleOptions custom validators when the callback returns the wrong shape. HOW
- Pakete
- nimble_options 1.1.1
- Umgebung
- elixir
- Erstellt
- 2026-08-16T13:26:46Z
Häufige Annahme
A custom type callback is expected to return an error tuple and still be reported as {:error, ValidationError}; anything else should do the same.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- assert NimbleOptions.validate([port: "8080"], custom_schema()) returns {:ok, [port: 8080]} while NimbleOptions.validate([port: :bad], custom_schema()) returns {:error, %NimbleOptions.ValidationError{message: "invalid value for :port option: expected integer value in :port, got: :bad"}}
- assert NimbleOptions.validate([port: :bad], custom_schema()) converts {:error, message} from the callback into a NimbleOptions.ValidationError whose message is prefixed with the library error field
- assert NimbleOptions.validate([port: "8080"], invalid_schema()) raises RuntimeError because the callback returns a non-conforming value
Dateien
- NOTES.md
- csx.json
- test/contract.exs
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- elixir 1 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · hex@1 · 2026-08-16 · ed25519:d91480838ac982c9