diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /devtools/client/webconsole/test/node/components/eager-evaluation.test.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/webconsole/test/node/components/eager-evaluation.test.js')
-rw-r--r-- | devtools/client/webconsole/test/node/components/eager-evaluation.test.js | 154 |
1 files changed, 154 insertions, 0 deletions
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(""); + }); +}); |