diff --git a/__tests__/expect_vitest.res b/__tests__/expect_vitest.res index c5391e8..1bfcead 100644 --- a/__tests__/expect_vitest.res +++ b/__tests__/expect_vitest.res @@ -54,19 +54,32 @@ let () = { test("expectFn", () => expectFn(throw, Invalid_argument("foo"))->toThrow) }) - // describe("Expect.Operators", () => { - // open Expect - // open! Expect.Operators + describe("Expect.Operators", () => { + open Expect + open! Expect.Operators + + let r1 = {"foo": "bar"} - // test("==", () => expect(1 + 2) === 3) - // test(">", () => expect(4) > 3) - // test(">=", () => expect(4) >= 4) - // test("<", () => expect(4) < 5) - // test("<=", () => expect(4) <= 4) - // test("=", () => expect(1 + 2) == 3) - // test("<>", () => expect(1 + 2) != 4) - // test("!=", () => expect(1 + 2) !== 4) - // }) + "==="->describe(() => { + test("int", () => expect(1 + 2) === 3) + test("string", () => expect("foo") === "foo") + test("same record", () => expect(r1) === r1) + }) + "!=="->describe(() => { + test("int", () => expect(1 + 2) !== 4) + test("equal record", () => expect(r1) !== {"foo": "bar"}) + }) + "=="->describe(() => { + test("int", () => expect(1 + 2) == 3) + test("string", () => expect("foo") == "foo") + test("record", () => expect(r1) == {"foo": "bar"}) + }) + test(">", () => expect(4) > 3) + test(">=", () => expect(4) >= 4) + test("<", () => expect(4) < 5) + test("<=", () => expect(4) <= 4) + test("!=", () => expect(1 + 2) != 4) + }) describe("ExpectJs", () => { open ExpectJs diff --git a/src/Vitest.res b/src/Vitest.res index 0862514..bc3f1cc 100644 --- a/src/Vitest.res +++ b/src/Vitest.res @@ -1,4 +1,4 @@ -@send external then: (promise<'a>, @uncurry 'a => promise<'b>) => promise<'b> = "then" +@send external then: (promise<'a>, @uncurry ('a => promise<'b>)) => promise<'b> = "then" module Promise = Js.Promise type modifier<'a> = [ @@ -15,7 +15,6 @@ let mapMod = (f, x) => type rec assertion = | Ok: assertion | Fail(string): assertion - | ArrayContains(modifier<(array<'a>, 'a)>): assertion | ArrayContainsEqual(modifier<(array<'a>, 'a)>): assertion | ArrayLength(modifier<(array<'a>, int)>): assertion @@ -30,14 +29,11 @@ type rec assertion = | LessThanOrEqual(modifier<('a, 'a)>): assertion | StringContains(modifier<(string, string)>): assertion | StringMatch(modifier<(string, Js.Re.t)>): assertion - | Throws(modifier _>): assertion - | MatchInlineSnapshot(_, string): assertion | MatchSnapshot(_): assertion | MatchSnapshotName(_, string): assertion | ThrowsMatchSnapshot(unit => _): assertion - /* JS */ | Defined(modifier>): assertion | Falsy(modifier<'a>): assertion @@ -343,18 +339,17 @@ module Expect = { let not_ = (#Just(a)) => #Not(a) let not__ = not_ /* For Reason syntax compatibility. TODO: deprecate and remove */ - // module Operators = { - // @@ocaml.text(" experimental ") - - // let \"==" = (a, b) => toBe(a, b) - // let \">" = (a, b) => toBeGreaterThan(a, b) - // let \">=" = (a, b) => toBeGreaterThanOrEqual(a, b) - // let \"<" = (a, b) => toBeLessThan(a, b) - // let \"<=" = (a, b) => toBeLessThanOrEqual(a, b) - // let \"=" = (a, b) => toEqual(a, b) - // let \"<>" = (a, b) => a->not_->toEqual(b) - // let \"!=" = (a, b) => a->not_->toBe(b) - // } + module Operators = { + let \"===" = (a, b) => a->toBe(b) + let \">" = (a, b) => toBeGreaterThan(a, b) + let \">=" = (a, b) => toBeGreaterThanOrEqual(a, b) + let \"<" = (a, b) => toBeLessThan(a, b) + let \"<=" = (a, b) => toBeLessThanOrEqual(a, b) + let \"==" = (a, b) => toEqual(a, b) + let \"<>" = (a, b) => a->not_->toEqual(b) + let \"!=" = (a, b) => a->not_->toEqual(b) + let \"!==" = (a, b) => a->not_->toBe(b) + } } module ExpectJs = { diff --git a/src/Vitest.resi b/src/Vitest.resi index 1767645..bac5d64 100644 --- a/src/Vitest.resi +++ b/src/Vitest.resi @@ -122,18 +122,19 @@ module Expect: { let not_: plainPartial<'a> => invertedPartial<'a> let not__: plainPartial<'a> => invertedPartial<'a> -// module Operators: { -// @@ocaml.text(" experimental ") - -// let \"==": ([< partial<'a>], 'a) => assertion -// let \">": ([< partial<'a>], 'a) => assertion -// let \">=": ([< partial<'a>], 'a) => assertion -// let \"<": ([< partial<'a>], 'a) => assertion -// let \"<=": ([< partial<'a>], 'a) => assertion -// let \"=": ([< partial<'a>], 'a) => assertion -// let \"<>": (plainPartial<'a>, 'a) => assertion -// let \"!=": (plainPartial<'a>, 'a) => assertion -// } + module Operators: { + @@ocaml.text(" experimental ") + + let \"===": ([< partial<'a>], 'a) => assertion + let \">": ([< partial<'a>], 'a) => assertion + let \">=": ([< partial<'a>], 'a) => assertion + let \"<": ([< partial<'a>], 'a) => assertion + let \"<=": ([< partial<'a>], 'a) => assertion + let \"==": ([< partial<'a>], 'a) => assertion + let \"<>": (plainPartial<'a>, 'a) => assertion + let \"!=": (plainPartial<'a>, 'a) => assertion + let \"!==": (plainPartial<'a>, 'a) => assertion + } } module ExpectJs: {