Effect CommunityEC
Effect Community2y ago
26 replies
sandromaglione

Testing `Exit`/`Either`/`Cause` in TypeScript

What's the most clean way of testing Exit/Either/Cause?

I am doing like this for now:
expect(Exit.isFailure(result)).toBe(true);
Exit.match(result, {
  onFailure: (cause) => {
    expect(Cause.isFailure(cause)).toBe(true);
    if (cause._tag !== "Fail") {
      assert.fail("Expected Cause to be Fail");
    }

    expect(cause.error._tag).toBe("FileFormatNotAllowedError");
  },
  onSuccess: () => {
    assert.fail("Exit expect to be Failure");
  },
});
Was this page helpful?