Skip to content

Commit

Permalink
Add FireEvent.click and FireEvent.change methods (#2)
Browse files Browse the repository at this point in the history
  • Loading branch information
wyze committed Oct 8, 2018
1 parent c6aa67f commit 584e1de
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 1 deletion.
3 changes: 2 additions & 1 deletion bsconfig.json
Expand Up @@ -25,6 +25,7 @@
}
],
"bs-dev-dependencies": [
"bs-jest"
"bs-jest",
"bs-webapi"
]
}
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -35,6 +35,7 @@
"devDependencies": {
"bs-jest": "^0.3.2",
"bs-platform": "^4.0.6",
"bs-webapi": "^0.12.2",
"npm-run-all": "^4.1.3",
"rimraf": "^2.6.2",
"write-changelog": "^1.2.0"
Expand Down
2 changes: 2 additions & 0 deletions src/DomTestingLibrary.re
@@ -1,3 +1,5 @@
module FireEvent = DomTestingLibrary__FireEvent;

module Query = {
type options = {
.
Expand Down
2 changes: 2 additions & 0 deletions src/DomTestingLibrary.rei
@@ -1,3 +1,5 @@
module FireEvent = DomTestingLibrary__FireEvent;

module Query: {
type options = {
.
Expand Down
5 changes: 5 additions & 0 deletions src/DomTestingLibrary__FireEvent.re
@@ -0,0 +1,5 @@
[@bs.module "dom-testing-library"] [@bs.scope "fireEvent"]
external click : Dom.element => unit = "";

[@bs.module "dom-testing-library"] [@bs.scope "fireEvent"]
external change : (Dom.element, Dom.event) => unit = "";
33 changes: 33 additions & 0 deletions src/__tests__/DomTestingLibrary_test.re
Expand Up @@ -138,4 +138,37 @@ describe("DomTestingLibrary", () => {
|> Js.Promise.catch(_ => Js.Promise.resolve(pass));
});
});

describe("FireEvent", () => {
test("click works", () => {
open Webapi.Dom;

let node = document |> Document.createElement("button");
let spy = JestJs.inferred_fn();
let fn = spy |> MockJs.fn;
let clickHandler = _ => [@bs] fn("clicked!") |> ignore;

node |> Element.addEventListener("click", clickHandler);

FireEvent.click(node);

expect(spy |> MockJs.calls) |> toEqual([|"clicked!"|]);
});

test("change works", () => {
open Webapi.Dom;

let node = document |> Document.createElement("input");
let spy = JestJs.inferred_fn();
let fn = spy |> MockJs.fn;
let changeHandler = _ => [@bs] fn("changed!") |> ignore;
let event = Event.makeWithOptions("change", { "target": { "value": "1" } });

node |> Element.addEventListener("change", changeHandler);

FireEvent.change(node, event);

expect(spy |> MockJs.calls) |> toEqual([|"changed!"|]);
});
});
});
5 changes: 5 additions & 0 deletions yarn.lock
Expand Up @@ -532,6 +532,11 @@ bs-platform@^4.0.6:
resolved "https://registry.yarnpkg.com/bs-platform/-/bs-platform-4.0.6.tgz#e7f156c77ad3efafb0c0291b41dcf1b06f93c192"
integrity sha512-TrNzQFoV6opBYdUgcRdgQQ5f6JnKgotPFZORIjuHPtRlYgv37P6xVBTGfA4NlMCkHXHcPrL6JI63GyAcfq+qpg==

bs-webapi@^0.12.2:
version "0.12.2"
resolved "https://registry.yarnpkg.com/bs-webapi/-/bs-webapi-0.12.2.tgz#5d85130dafbee44fd1232a851c34f06b5ecdf3f9"
integrity sha512-DpdxZey/0GdbYK2d5dXP9SF9g7gdVwspnqQNonjxQ+HwlJOVcA4pkCyWE8Trxg7O2J2KekKAZLAgn3kjGB71pQ==

bser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
Expand Down

0 comments on commit 584e1de

Please sign in to comment.