network-messages.test.js (3456B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 const { 6 getAllNetworkMessagesUpdateById, 7 } = require("resource://devtools/client/webconsole/selectors/messages.js"); 8 const { 9 setupActions, 10 setupStore, 11 clonePacket, 12 } = require("resource://devtools/client/webconsole/test/node/helpers.js"); 13 const { 14 stubPackets, 15 } = require("resource://devtools/client/webconsole/test/node/fixtures/stubs/index.js"); 16 17 const expect = require("expect"); 18 19 describe("Network message reducer:", () => { 20 let actions; 21 let getState; 22 let dispatch; 23 24 beforeAll(() => { 25 actions = setupActions(); 26 }); 27 28 beforeEach(() => { 29 const store = setupStore(); 30 31 getState = store.getState; 32 dispatch = store.dispatch; 33 34 const packet = clonePacket(stubPackets.get("GET request")); 35 const updatePacket = clonePacket(stubPackets.get("GET request update")); 36 37 packet.actor = "message1"; 38 updatePacket.actor = "message1"; 39 dispatch(actions.messagesAdd([packet])); 40 dispatch(actions.networkMessageUpdates([updatePacket])); 41 }); 42 43 describe("networkMessagesUpdateById", () => { 44 it("adds fetched HTTP request headers", () => { 45 const headers = { 46 headers: [], 47 }; 48 49 dispatch( 50 actions.networkUpdateRequests([ 51 { 52 id: "message1", 53 data: { 54 requestHeaders: headers, 55 }, 56 }, 57 ]) 58 ); 59 60 const networkUpdates = getAllNetworkMessagesUpdateById(getState()); 61 expect(networkUpdates.message1.requestHeaders).toBe(headers); 62 }); 63 64 it("makes sure multiple HTTP updates of same request does not override", () => { 65 dispatch( 66 actions.networkUpdateRequests([ 67 { 68 id: "message1", 69 data: { 70 stacktrace: [{}], 71 }, 72 }, 73 { 74 id: "message1", 75 data: { 76 requestHeaders: { headers: [] }, 77 }, 78 }, 79 ]) 80 ); 81 82 const networkUpdates = getAllNetworkMessagesUpdateById(getState()); 83 expect(networkUpdates.message1.requestHeaders).toNotBe(undefined); 84 expect(networkUpdates.message1.stacktrace).toNotBe(undefined); 85 }); 86 87 it("adds fetched HTTP security info", () => { 88 const securityInfo = { 89 state: "insecure", 90 }; 91 92 dispatch( 93 actions.networkUpdateRequests([ 94 { 95 id: "message1", 96 data: { 97 securityState: "insecure", 98 securityInfo, 99 }, 100 }, 101 ]) 102 ); 103 104 const networkUpdates = getAllNetworkMessagesUpdateById(getState()); 105 expect(networkUpdates.message1.securityInfo).toBe(securityInfo); 106 expect(networkUpdates.message1.securityState).toBe("insecure"); 107 }); 108 109 it("adds fetched HTTP post data", () => { 110 const uploadHeaders = Symbol(); 111 const requestPostData = { 112 postData: { 113 text: "", 114 }, 115 uploadHeaders, 116 }; 117 118 dispatch( 119 actions.networkUpdateRequests([ 120 { 121 id: "message1", 122 data: { 123 requestPostData, 124 }, 125 }, 126 ]) 127 ); 128 129 const { message1 } = getAllNetworkMessagesUpdateById(getState()); 130 expect(message1.requestPostData).toBe(requestPostData); 131 expect(message1.requestHeadersFromUploadStream).toBe(uploadHeaders); 132 }); 133 }); 134 });