From 66e789846245fbce0849e69455c38ebae00cff9e Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Wed, 1 Nov 2023 19:31:34 +0100 Subject: [PATCH] Remove dependency on Belt --- src/ReactTestUtils.bs.js | 37 ++++++++++++++++++++++--------------- src/ReactTestUtils.res | 29 +++++++++++++++-------------- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/src/ReactTestUtils.bs.js b/src/ReactTestUtils.bs.js index 8900461..9913094 100644 --- a/src/ReactTestUtils.bs.js +++ b/src/ReactTestUtils.bs.js @@ -2,8 +2,6 @@ 'use strict'; var Curry = require("rescript/lib/js/curry.js"); -var Belt_Array = require("rescript/lib/js/belt_Array.js"); -var Belt_Option = require("rescript/lib/js/belt_Option.js"); var Caml_option = require("rescript/lib/js/caml_option.js"); var TestUtils = require("react-dom/test-utils"); @@ -52,15 +50,15 @@ function findByAllSelector(element, selector) { } function findBySelectorAndTextContent(element, selector, content) { - return Belt_Array.getBy(Array.from(element.querySelectorAll(selector)), (function (node) { - return node.textContent === content; - })); + return Caml_option.undefined_to_opt(Array.from(element.querySelectorAll(selector)).find(function (node) { + return node.textContent === content; + })); } function findBySelectorAndPartialTextContent(element, selector, content) { - return Belt_Array.getBy(Array.from(element.querySelectorAll(selector)), (function (node) { - return node.textContent.includes(content); - })); + return Caml_option.undefined_to_opt(Array.from(element.querySelectorAll(selector)).find(function (node) { + return node.textContent.includes(content); + })); } var DOM = { @@ -72,21 +70,30 @@ var DOM = { function prepareContainer(container, param) { var containerElement = document.createElement("div"); - Belt_Option.map(document.body, (function (body) { - return body.appendChild(containerElement); - })); + var body = document.body; + if (body !== undefined) { + Caml_option.valFromOption(body).appendChild(containerElement); + } container.contents = Caml_option.some(containerElement); } function cleanupContainer(container, param) { - Belt_Option.map(container.contents, (function (prim) { - prim.remove(); - })); + var contents = container.contents; + if (contents !== undefined) { + Caml_option.valFromOption(contents).remove(); + } container.contents = undefined; } function getContainer(container) { - return Belt_Option.getExn(container.contents); + var contents = container.contents; + if (contents !== undefined) { + return Caml_option.valFromOption(contents); + } + throw { + RE_EXN_ID: "Not_found", + Error: new Error() + }; } exports.act = act; diff --git a/src/ReactTestUtils.res b/src/ReactTestUtils.res index be30345..5b3bc09 100644 --- a/src/ReactTestUtils.res +++ b/src/ReactTestUtils.res @@ -94,8 +94,6 @@ external appendChild: (Dom.element, Dom.element) => Dom.element = "appendChild" let querySelectorAll = (element, string) => Js.Array.from(querySelectorAll(element, string)) module DOM = { - open Belt - @return(nullable) @get external value: Dom.element => option = "value" @@ -104,30 +102,33 @@ module DOM = { let findByAllSelector = (element, selector) => querySelectorAll(element, selector) let findBySelectorAndTextContent = (element, selector, content) => - querySelectorAll(element, selector)->Array.getBy(node => node->textContent === content) + querySelectorAll(element, selector)->Js.Array2.find(node => node->textContent === content) let findBySelectorAndPartialTextContent = (element, selector, content) => - querySelectorAll(element, selector)->Array.getBy(node => + querySelectorAll(element, selector)->Js.Array2.find(node => node->textContent->Js.String2.includes(content) ) } let prepareContainer = (container: ref>, ()) => { - open Belt - let containerElement = document->createElement("div") - let _ = document->body->Option.map(body => body->appendChild(containerElement)) + switch document->body { + | Some(body) => body->appendChild(containerElement)->ignore + | None => () + } container := Some(containerElement) } let cleanupContainer = (container: ref>, ()) => { - open Belt - - let _ = container.contents->Option.map(remove) + switch container.contents { + | Some(contents) => remove(contents) + | None => () + } container := None } -let getContainer = container => { - open Belt - container.contents->Option.getExn -} +let getContainer = container => + switch container.contents { + | Some(contents) => contents + | None => raise(Not_found) + }