Skip to content

Map every failure onto the error vocabulary, with nothing falling through #37

Description

@iderex

The vocabulary in #4 is a decision. This is where it becomes true of the code. It
is also where the vocabulary gets its first honest test, because a real server
produces shapes nobody predicted.

What this produces

One mapping point every failure passes through. A transport failure, a status
code, a server-supplied error body, and a response the core could not parse all
arrive as a named kind.

A named kind for the shape that matches nothing, carrying enough detail for a bug
report and nothing that identifies a person or a server address a person did not
type.

No raw status code, no library exception type, and no server-supplied sentence
reaching a caller unmapped, since each of those is how a client ends up switching
on a number.

Done when

Every failure in the repository leaves through the mapping point, a test drives
the fake server through at least a dozen hostile responses and asserts the named
kind for each, and no test finds an unmapped value reaching a caller. Blocked on
#4 and #21.

Metadata

Metadata

Assignees

Labels

architectureShape of the core: boundaries, interfaces, contracts

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions