Skip to content

Easier bindings to Jest for ReasonML

Notifications You must be signed in to change notification settings

draftbit/re-jest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

re-jest

Jest bindings in ReasonML

This is a set of bindings to jest in ReasonML, It aims to be simpler to use than bs-jest, with most functions returning unit, enabling a developer to write their tests with the same approach they would take writing them in JavaScript, but without needing to leave the type safety of ReasonML.

describe("myTests", () => {
  test("numbers", () => {
    let myNumber = 123;
    expect(myNumber)->toBeGreaterThan(100);
    expect(myNumber)->not->toBeLessThanOrEqual(1);

    // It also works for floats...
    expect(myNumber->float_of_int)->toBeLessThan(124.0);
  });

  testAsync("promises", () => {
    expect(Js.Promise.resolve(123))->resolves->toEqual(123);
  });

  test("arrays", () => {
    expect([|1, 2, 3, 4, 5|])->toContain(4);
  });

  // Still working on this one...
  Skip.test("billion dollar idea generator",
    () =>
      expect(generateBillionDollarCompany()->valuation)
      ->toBeGreaterThan(1000000000)
  );
});

Stability

Very much a work in progress, but nonetheless it can do enough to test plenty of existing code.