serradura/u-case

Improve Micro::Case#call! invalid result error messages

serradura opened this issue · 0 comments

Raise a better error when the Micro::Case#call! doesn't return a Micro::Case::Result instance.

Expected exception: Micro::Case::Error::InvalidResult.

Expected messages:

Invalid success/failure result without a custom type:

The result returned from MyCase#call! must be a Hash.

Example:
  Success(result: { key: 'value' })
The result returned from MyCase#call! must be a Hash.

Example:
  Failure(result: { key: 'value' })

Invalid success/failure result with a custom type:

The result returned from MyCase#call! must be a Hash.

Example:
  Success(:my_success, result: { key: 'value' })
The result returned from MyCase#call! must be a Hash.

Example:
  Failure(:my_failure, result: { key: 'value' })

Thanks, @MatheusRich and @mrbongiolo for helping me to elaborate on this idea. 🚀