Bug 1438542 - Fix rendering of non-cached message issued from logStringMessage; r=miker.
We weren't doing the right transform for cached messages, and thus
we weren't creating the ConsoleMessage with the correct properties.
This is now fixed and a mocha test is added to make sure we don't
regress on this.
MozReview-Commit-ID: ACOCPF06GK2
--- a/devtools/client/webconsole/new-console-output/test/components/console-api-call.log-messages.test.js
+++ b/devtools/client/webconsole/new-console-output/test/components/console-api-call.log-messages.test.js
@@ -7,35 +7,49 @@ const expect = require("expect");
const { render } = require("enzyme");
// React
const { createFactory } = require("devtools/client/shared/vendor/react");
// Components under test.
const ConsoleApiCall = createFactory(require("devtools/client/webconsole/new-console-output/components/message-types/ConsoleApiCall"));
-const { ConsoleMessage } = require("devtools/client/webconsole/new-console-output/types");
const { prepareMessage } = require("devtools/client/webconsole/new-console-output/utils/messages");
const serviceContainer = require("devtools/client/webconsole/new-console-output/test/fixtures/serviceContainer");
describe("ConsoleAPICall component:", () => {
describe("Services.console.logStringMessage", () => {
+ it("renders cached logMessage grips", () => {
+ let message = prepareMessage(cachedLogMessageStubPacket, {getNextId: () => "1"});
+ const wrapper = render(ConsoleApiCall({ message, serviceContainer }));
+
+ expect(wrapper.find(".message-body").text()).toBe("foobar test");
+
+ // There should not be the location
+ expect(wrapper.find(".message-location").text()).toBe("");
+ });
+
it("renders logMessage grips", () => {
let message = prepareMessage(logMessageStubPacket, {getNextId: () => "1"});
- message = new ConsoleMessage(message);
-
const wrapper = render(ConsoleApiCall({ message, serviceContainer }));
expect(wrapper.find(".message-body").text()).toBe("foobar test");
// There should not be the location
expect(wrapper.find(".message-location").text()).toBe("");
});
});
});
// Stub packet
-const logMessageStubPacket = {
+const cachedLogMessageStubPacket = {
"from": "server1.conn1.consoleActor2",
"message": "foobar test",
"timeStamp": "1493370184067",
"_type": "LogMessage",
};
+
+const logMessageStubPacket = {
+ "from": "server1.conn0.consoleActor2",
+ "type": "logMessage",
+ "message": "foobar test",
+ "timeStamp": 1519052480060
+};
--- a/devtools/client/webconsole/new-console-output/utils/messages.js
+++ b/devtools/client/webconsole/new-console-output/utils/messages.js
@@ -177,23 +177,27 @@ function transformNavigationMessagePacke
type: MESSAGE_TYPE.LOG,
level: MESSAGE_LEVEL.LOG,
messageText: "Navigated to " + message.url,
timeStamp: message.timeStamp
});
}
function transformLogMessagePacket(packet) {
- let { message } = packet;
+ let {
+ message,
+ timeStamp,
+ } = packet;
+
return new ConsoleMessage({
source: MESSAGE_SOURCE.CONSOLE_API,
type: MESSAGE_TYPE.LOG,
level: MESSAGE_LEVEL.LOG,
- messageText: message.message,
- timeStamp: message.timeStamp
+ messageText: message,
+ timeStamp,
});
}
function transformPageErrorPacket(packet) {
let { pageError } = packet;
let level = MESSAGE_LEVEL.ERROR;
if (pageError.warning || pageError.strict) {
level = MESSAGE_LEVEL.WARN;
@@ -313,18 +317,20 @@ function convertCachedPacket(packet) {
convertPacket.type = "pageError";
} else if ("_navPayload" in packet) {
convertPacket.type = "navigationMessage";
convertPacket.message = packet;
} else if (packet._type === "NetworkEvent") {
convertPacket.networkEvent = packet;
convertPacket.type = "networkEvent";
} else if (packet._type === "LogMessage") {
- convertPacket.message = packet;
- convertPacket.type = "logMessage";
+ convertPacket = {
+ ...packet,
+ type: "logMessage"
+ };
} else {
throw new Error("Unexpected packet type: " + packet._type);
}
return convertPacket;
}
/**
* Maps a Firefox RDP type to its corresponding level.