summaryrefslogtreecommitdiffstats
path: root/devtools/client/webconsole/test/node/components/eager-evaluation.test.js
diff options
context:
space:
mode:
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.js154
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("");
+ });
+});