Bug 1438542 - Fix rendering of non-cached message issued from logStringMessage; r=miker. draft
authorNicolas Chevobbe <nchevobbe@mozilla.com>
Mon, 19 Feb 2018 16:24:55 +0100
changeset 756982 029fe31b7343f4032ea48a8629bae8d8c0a87e62
parent 756941 d0d3693d9beff5477175a441fdb06e281e8b7f17
push id99621
push userbmo:nchevobbe@mozilla.com
push dateMon, 19 Feb 2018 15:31:34 +0000
reviewersmiker
bugs1438542
milestone60.0a1
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
devtools/client/webconsole/new-console-output/test/components/console-api-call.log-messages.test.js
devtools/client/webconsole/new-console-output/utils/messages.js
--- 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.