diff options
Diffstat (limited to 'devtools/client/webconsole/test/node/store/network-messages.test.js')
-rw-r--r-- | devtools/client/webconsole/test/node/store/network-messages.test.js | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/devtools/client/webconsole/test/node/store/network-messages.test.js b/devtools/client/webconsole/test/node/store/network-messages.test.js new file mode 100644 index 0000000000..1daba02f2d --- /dev/null +++ b/devtools/client/webconsole/test/node/store/network-messages.test.js @@ -0,0 +1,133 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +"use strict"; + +const { + getAllNetworkMessagesUpdateById, +} = require("resource://devtools/client/webconsole/selectors/messages.js"); +const { + setupActions, + setupStore, + clonePacket, +} = require("resource://devtools/client/webconsole/test/node/helpers.js"); +const { + stubPackets, +} = require("resource://devtools/client/webconsole/test/node/fixtures/stubs/index.js"); + +const expect = require("expect"); + +describe("Network message reducer:", () => { + let actions; + let getState; + let dispatch; + + beforeAll(() => { + actions = setupActions(); + }); + + beforeEach(() => { + const store = setupStore(); + + getState = store.getState; + dispatch = store.dispatch; + + const packet = clonePacket(stubPackets.get("GET request")); + const updatePacket = clonePacket(stubPackets.get("GET request update")); + + packet.actor = "message1"; + updatePacket.actor = "message1"; + dispatch(actions.messagesAdd([packet])); + dispatch(actions.networkMessageUpdates([updatePacket], null)); + }); + + describe("networkMessagesUpdateById", () => { + it("adds fetched HTTP request headers", () => { + const headers = { + headers: [], + }; + + dispatch( + actions.networkUpdateRequests([ + { + id: "message1", + data: { + requestHeaders: headers, + }, + }, + ]) + ); + + const networkUpdates = getAllNetworkMessagesUpdateById(getState()); + expect(networkUpdates.message1.requestHeaders).toBe(headers); + }); + + it("makes sure multiple HTTP updates of same request does not override", () => { + dispatch( + actions.networkUpdateRequests([ + { + id: "message1", + data: { + stacktrace: [{}], + }, + }, + { + id: "message1", + data: { + requestHeaders: { headers: [] }, + }, + }, + ]) + ); + + const networkUpdates = getAllNetworkMessagesUpdateById(getState()); + expect(networkUpdates.message1.requestHeaders).toNotBe(undefined); + expect(networkUpdates.message1.stacktrace).toNotBe(undefined); + }); + + it("adds fetched HTTP security info", () => { + const securityInfo = { + state: "insecure", + }; + + dispatch( + actions.networkUpdateRequests([ + { + id: "message1", + data: { + securityInfo, + }, + }, + ]) + ); + + const networkUpdates = getAllNetworkMessagesUpdateById(getState()); + expect(networkUpdates.message1.securityInfo).toBe(securityInfo); + expect(networkUpdates.message1.securityState).toBe("insecure"); + }); + + it("adds fetched HTTP post data", () => { + const uploadHeaders = Symbol(); + const requestPostData = { + postData: { + text: "", + }, + uploadHeaders, + }; + + dispatch( + actions.networkUpdateRequests([ + { + id: "message1", + data: { + requestPostData, + }, + }, + ]) + ); + + const { message1 } = getAllNetworkMessagesUpdateById(getState()); + expect(message1.requestPostData).toBe(requestPostData); + expect(message1.requestHeadersFromUploadStream).toBe(uploadHeaders); + }); + }); +}); |