Skip to content

Cover andThen's applied form with an explicit Nothing - #35

Open
lhellemons wants to merge 1 commit into
mainfrom
test/andthen-nothing-arity
Open

Cover andThen's applied form with an explicit Nothing#35
lhellemons wants to merge 1 commit into
mainfrom
test/andthen-nothing-arity

Conversation

@lhellemons

Copy link
Copy Markdown
Owner

Follow-up from an audit of the curryable combinators' test coverage.

Every curryable combinator has runtime tests for both the curried and applied forms, and all but one pin the arity trap ADR-0003 closes — Nothing is undefined, so a two-argument call must apply rather than return the Mapper. maybe/andThen was the exception: its applied form was only tested with a present value.

  • Adds the missing case: andThen(fn, nothing<number>()) produces Nothing.
  • Removes expect(andThen).toBe(map). It asserts andThen is map by reference — an implementation detail, not behaviour a caller depends on. The alias relationship stays documented in the docblock, and the behavioural tests cover what actually matters.

🤖 Generated with Claude Code

andThen was the one curryable combinator whose applied form was not
tested against an absent value — the arity trap ADR-0003 closes, where
Nothing IS undefined and a two-argument call must apply rather than hand
back the Mapper.

Drops the test asserting andThen is map by reference: it pins an
implementation detail rather than behaviour, and the behavioural tests
cover what callers rely on.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant