52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
"use strict";
|
|
|
|
const {
|
|
createFactory,
|
|
} = require("resource://devtools/client/shared/vendor/react.js");
|
|
// Test utils.
|
|
const expect = require("expect");
|
|
const { render } = require("enzyme");
|
|
const Provider = createFactory(
|
|
require("resource://devtools/client/shared/vendor/react-redux.js").Provider
|
|
);
|
|
|
|
const ConsoleOutput = createFactory(
|
|
require("resource://devtools/client/webconsole/components/Output/ConsoleOutput.js")
|
|
);
|
|
const serviceContainer = require("resource://devtools/client/webconsole/test/node/fixtures/serviceContainer.js");
|
|
const {
|
|
setupStore,
|
|
} = require("resource://devtools/client/webconsole/test/node/helpers.js");
|
|
|
|
const MESSAGES_NUMBER = 100;
|
|
function getDefaultProps() {
|
|
const store = setupStore(
|
|
Array.from({ length: MESSAGES_NUMBER })
|
|
// Alternate message so we don't trigger the repeat mechanism.
|
|
.map((_, i) => (i % 2 ? "console.log(null)" : "console.log(NaN)"))
|
|
);
|
|
|
|
return {
|
|
store,
|
|
serviceContainer,
|
|
};
|
|
}
|
|
|
|
describe("ConsoleOutput component:", () => {
|
|
it("Render every message", () => {
|
|
const Services = require("resource://devtools/client/shared/test-helpers/jest-fixtures/Services.js");
|
|
Services.prefs.setBoolPref("devtools.testing", true);
|
|
|
|
// We need to wrap the ConsoleApiElement in a Provider in order for the
|
|
// ObjectInspector to work.
|
|
const rendered = render(
|
|
Provider({ store: setupStore() }, ConsoleOutput(getDefaultProps()))
|
|
);
|
|
|
|
Services.prefs.setBoolPref("devtools.testing", false);
|
|
const visibleMessages = JSON.parse(rendered.prop("data-visible-messages"));
|
|
expect(visibleMessages.length).toBe(MESSAGES_NUMBER);
|
|
});
|
|
});
|