Bug 1289258 - Part 3: Convert action test to Mocha. r=bgrins draft
authorLin Clark <lclark@mozilla.com>
Tue, 26 Jul 2016 15:16:59 -0400
changeset 398715 6844460f68e0fbd76dd3ebaa66ab18ba5d6f8708
parent 398714 20427813d0e4deb985317efefe66c655bb05453d
child 398716 4cfced33907f0c2a3f39ee59ebce4ce275234aa0
push id25608
push userbmo:lclark@mozilla.com
push dateTue, 09 Aug 2016 16:53:59 +0000
reviewersbgrins
bugs1289258
milestone51.0a1
Bug 1289258 - Part 3: Convert action test to Mocha. r=bgrins MozReview-Commit-ID: LFqvilPHUe1
devtools/client/webconsole/new-console-output/moz.build
devtools/client/webconsole/new-console-output/test/actions/head.js
devtools/client/webconsole/new-console-output/test/actions/messages.test.js
devtools/client/webconsole/new-console-output/test/actions/test_messages.js
devtools/client/webconsole/new-console-output/test/actions/xpcshell.ini
--- a/devtools/client/webconsole/new-console-output/moz.build
+++ b/devtools/client/webconsole/new-console-output/moz.build
@@ -20,12 +20,11 @@ DevToolsModules(
     'types.js',
 )
 
 MOCHITEST_CHROME_MANIFESTS += [
   'test/components/chrome.ini',
   'test/utils/chrome.ini'
 ]
 XPCSHELL_TESTS_MANIFESTS += [
-  'test/actions/xpcshell.ini',
   'test/store/xpcshell.ini'
 ]
 
deleted file mode 100644
--- a/devtools/client/webconsole/new-console-output/test/actions/head.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-var { utils: Cu } = Components;
-var { require } = Cu.import("resource://devtools/shared/Loader.jsm", {});
-
-var DevToolsUtils = require("devtools/shared/DevToolsUtils");
-var flags = require("devtools/shared/flags");
-flags.testing = true;
-flags.wantLogging = true;
-flags.wantVerbose = false;
-
-// @TODO consolidate once we have a shared head. See #16
-const testPackets = new Map();
-testPackets.set("console.log", {
-  "from": "server1.conn4.child1/consoleActor2",
-  "type": "consoleAPICall",
-  "message": {
-    "arguments": [
-      "foobar",
-      "test"
-    ],
-    "columnNumber": 1,
-    "counter": null,
-    "filename": "file:///test.html",
-    "functionName": "",
-    "groupName": "",
-    "level": "log",
-    "lineNumber": 1,
-    "private": false,
-    "styles": [],
-    "timeStamp": 1455064271115,
-    "timer": null,
-    "workerType": "none",
-    "category": "webdev"
-  }
-});
new file mode 100644
--- /dev/null
+++ b/devtools/client/webconsole/new-console-output/test/actions/messages.test.js
@@ -0,0 +1,65 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+const {
+  messageAdd,
+  messagesClear
+} = require("devtools/client/webconsole/new-console-output/actions/messages");
+const { getRepeatId } = require("devtools/client/webconsole/new-console-output/utils/messages");
+const { stubConsoleMessages } = require("devtools/client/webconsole/new-console-output/test/fixtures/stubs");
+const constants = require("devtools/client/webconsole/new-console-output/constants");
+
+const expect = require("expect");
+
+describe("Message actions:", () => {
+  describe("messageAdd", () => {
+    it("creates expected action given a packet", () => {
+      const packet = {
+        "from": "server1.conn4.child1/consoleActor2",
+        "type": "consoleAPICall",
+        "message": {
+          "arguments": [
+            "foobar",
+            "test"
+          ],
+          "columnNumber": 1,
+          "counter": null,
+          "filename": "file:///test.html",
+          "functionName": "",
+          "groupName": "",
+          "level": "log",
+          "lineNumber": 1,
+          "private": false,
+          "styles": [],
+          "timeStamp": 1455064271115,
+          "timer": null,
+          "workerType": "none",
+          "category": "webdev"
+        }
+      };
+      const action = messageAdd(packet);
+      const expected = {
+        type: constants.MESSAGE_ADD,
+        message: stubConsoleMessages.get("console.log('foobar', 'test')")
+      };
+
+      // Some values on the message are generated by prepareMessage. Manually set
+      // these on the expected message to match.
+      expected.message = expected.message.set("repeatId", getRepeatId(expected.message));
+      expected.message = expected.message.set("id", "0");
+
+      expect(action).toEqual(expected);
+    });
+  });
+
+  describe("messagesClear", () => {
+    it("creates expected action", () => {
+      const action = messagesClear();
+      const expected = {
+        type: constants.MESSAGES_CLEAR,
+      };
+      expect(action).toEqual(expected);
+    });
+  });
+});
deleted file mode 100644
--- a/devtools/client/webconsole/new-console-output/test/actions/test_messages.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-"use strict";
-
-const {
-  messageAdd,
-  messagesClear
-} = require("devtools/client/webconsole/new-console-output/actions/messages");
-const {
-  prepareMessage
-} = require("devtools/client/webconsole/new-console-output/utils/messages");
-const constants = require("devtools/client/webconsole/new-console-output/constants");
-
-function run_test() {
-  run_next_test();
-}
-
-add_task(function* () {
-  const packet = testPackets.get("console.log");
-  const action = messageAdd(packet);
-  const expected = {
-    type: constants.MESSAGE_ADD,
-    // Prepare message is tested independently.
-    message: prepareMessage(packet)
-  };
-  // Remove ID for deepEqual comparison.
-  action.message = action.message.remove('id');
-  expected.message = expected.message.remove('id');
-  deepEqual(action, expected,
-    "messageAdd action creator returns expected action object");
-});
-
-add_task(function* () {
-  const action = messagesClear();
-  const expected = {
-    type: constants.MESSAGES_CLEAR,
-  };
-  deepEqual(action, expected,
-    "messagesClear action creator returns expected action object");
-});
deleted file mode 100644
--- a/devtools/client/webconsole/new-console-output/test/actions/xpcshell.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[DEFAULT]
-tags = devtools devtools-webconsole
-head = head.js
-tail =
-firefox-appdir = browser
-
-[test_messages.js]
\ No newline at end of file