From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- .../test/node/components/eager-evaluation.test.js | 154 +++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 devtools/client/webconsole/test/node/components/eager-evaluation.test.js (limited to 'devtools/client/webconsole/test/node/components/eager-evaluation.test.js') diff --git a/devtools/client/webconsole/test/node/components/eager-evaluation.test.js b/devtools/client/webconsole/test/node/components/eager-evaluation.test.js new file mode 100644 index 0000000000..df4bc0dd09 --- /dev/null +++ b/devtools/client/webconsole/test/node/components/eager-evaluation.test.js @@ -0,0 +1,154 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +const expect = require("expect"); +const { render } = require("enzyme"); + +const { + createFactory, +} = require("resource://devtools/client/shared/vendor/react.js"); +const Provider = createFactory( + require("resource://devtools/client/shared/vendor/react-redux.js").Provider +); + +const EagerEvaluation = createFactory( + require("resource://devtools/client/webconsole/components/Input/EagerEvaluation.js") +); + +const { + setupStore, +} = require("resource://devtools/client/webconsole/test/node/helpers.js"); +const { + SET_TERMINAL_EAGER_RESULT, +} = require("resource://devtools/client/webconsole/constants.js"); + +const { + stubPackets, +} = require("resource://devtools/client/webconsole/test/node/fixtures/stubs/index.js"); + +function getEagerEvaluation(overrides = {}) { + return EagerEvaluation({ + highlightDomElement: () => {}, + unHighlightDomElement: () => {}, + ...overrides, + }); +} + +describe("EagerEvaluation component:", () => { + it("render Date result", () => { + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: stubPackets.get("new Date(0)").result, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(1); + expect(wrapper.text()).toBe( + "Date Thu Jan 01 1970 01:00:00 GMT+0100 (Central European Standard Time)" + ); + }); + + it("render falsy integer (0) result", () => { + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: 0, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(1); + expect(wrapper.text()).toBe("0"); + }); + + it("render false result", () => { + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: false, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(1); + expect(wrapper.text()).toBe("false"); + }); + + it("render empty string result", () => { + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: "", + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(1); + expect(wrapper.text()).toBe(`""`); + }); + + it("render null grip result", () => { + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: { type: "null" }, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(1); + expect(wrapper.text()).toBe("null"); + }); + + it("render undefined grip result", () => { + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: { type: "undefined" }, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(1); + expect(wrapper.text()).toBe("undefined"); + }); + + it("do not render null result", () => { + // This is not to be confused with a grip describing `null` (which is {type: "null"}) + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: null, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(0); + expect(wrapper.text()).toBe(""); + }); + + it("do not render undefined result", () => { + // This is not to be confused with a grip describing `undefined` (which is {type: "undefined"}) + const store = setupStore(); + store.dispatch({ + type: SET_TERMINAL_EAGER_RESULT, + result: undefined, + }); + + const wrapper = render(Provider({ store }, getEagerEvaluation())); + + expect(wrapper.hasClass("eager-evaluation-result")).toBe(true); + expect(wrapper.find(".eager-evaluation-result__row").length).toBe(0); + expect(wrapper.text()).toBe(""); + }); +}); -- cgit v1.2.3