154 lines
4.7 KiB
JavaScript
154 lines
4.7 KiB
JavaScript
/* 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("");
|
|
});
|
|
});
|