Bug 1363678 - Adapt tests to the new filtering logic. r=bgrins,Honza

MozReview-Commit-ID: Kv4fmQ4hU9c

--HG--
extra : rebase_source : 381c1335cb67c17c98922b089235889b06bbc6ec
This commit is contained in:
Nicolas Chevobbe 2017-05-31 09:32:32 +02:00
Родитель d3fa8435f5
Коммит a52529fac7
4 изменённых файлов: 173 добавлений и 103 удалений

Просмотреть файл

@ -16,19 +16,19 @@ add_task(function* () {
let hud = toolbox.getCurrentPanel().hud; let hud = toolbox.getCurrentPanel().hud;
const store = hud.ui.newConsoleOutput.getStore(); const store = hud.ui.newConsoleOutput.getStore();
// Adding loggin each time the store is modified in order to check // Adding logging each time the store is modified in order to check
// the store state in case of failure. // the store state in case of failure.
store.subscribe(() => { store.subscribe(() => {
const messages = store.getState().messages.messagesById.toJS() const messages = store.getState().messages.messagesById
.map(message => { .reduce(function (res, message) {
return { res.push({
id: message.id, id: message.id,
type: message.type, type: message.type,
parameters: message.parameters, parameters: message.parameters,
messageText: message.messageText messageText: message.messageText
}; });
} return res;
); }, []);
info("messages : " + JSON.stringify(messages)); info("messages : " + JSON.stringify(messages));
}); });

Просмотреть файл

@ -8,7 +8,7 @@ const expect = require("expect");
const actions = require("devtools/client/webconsole/new-console-output/actions/index"); const actions = require("devtools/client/webconsole/new-console-output/actions/index");
const { messageAdd } = require("devtools/client/webconsole/new-console-output/actions/index"); const { messageAdd } = require("devtools/client/webconsole/new-console-output/actions/index");
const { ConsoleCommand } = require("devtools/client/webconsole/new-console-output/types"); const { ConsoleCommand } = require("devtools/client/webconsole/new-console-output/types");
const { getAllMessages } = require("devtools/client/webconsole/new-console-output/selectors/messages"); const { getVisibleMessages } = require("devtools/client/webconsole/new-console-output/selectors/messages");
const { getAllFilters } = require("devtools/client/webconsole/new-console-output/selectors/filters"); const { getAllFilters } = require("devtools/client/webconsole/new-console-output/selectors/filters");
const { setupStore } = require("devtools/client/webconsole/new-console-output/test/helpers"); const { setupStore } = require("devtools/client/webconsole/new-console-output/test/helpers");
const { MESSAGE_LEVEL } = require("devtools/client/webconsole/new-console-output/constants"); const { MESSAGE_LEVEL } = require("devtools/client/webconsole/new-console-output/constants");
@ -25,22 +25,22 @@ describe("Filtering", () => {
beforeEach(() => { beforeEach(() => {
store = prepareBaseStore(); store = prepareBaseStore();
store.dispatch(actions.filtersClear()); store.dispatch(actions.filtersClear());
numMessages = getAllMessages(store.getState()).size; numMessages = getVisibleMessages(store.getState()).length;
}); });
describe("Level filter", () => { describe("Level filter", () => {
it("filters log messages", () => { it("filters log messages", () => {
store.dispatch(actions.filterToggle(MESSAGE_LEVEL.LOG)); store.dispatch(actions.filterToggle(MESSAGE_LEVEL.LOG));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages - 3); expect(messages.length).toEqual(numMessages - 3);
}); });
it("filters debug messages", () => { it("filters debug messages", () => {
store.dispatch(actions.filterToggle(MESSAGE_LEVEL.DEBUG)); store.dispatch(actions.filterToggle(MESSAGE_LEVEL.DEBUG));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages - 1); expect(messages.length).toEqual(numMessages - 1);
}); });
// @TODO add info stub // @TODO add info stub
@ -49,15 +49,15 @@ describe("Filtering", () => {
it("filters warning messages", () => { it("filters warning messages", () => {
store.dispatch(actions.filterToggle(MESSAGE_LEVEL.WARN)); store.dispatch(actions.filterToggle(MESSAGE_LEVEL.WARN));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages - 1); expect(messages.length).toEqual(numMessages - 1);
}); });
it("filters error messages", () => { it("filters error messages", () => {
store.dispatch(actions.filterToggle(MESSAGE_LEVEL.ERROR)); store.dispatch(actions.filterToggle(MESSAGE_LEVEL.ERROR));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages - 1); expect(messages.length).toEqual(numMessages - 1);
}); });
it("filters css messages", () => { it("filters css messages", () => {
@ -66,52 +66,51 @@ describe("Filtering", () => {
); );
store.dispatch(messageAdd(message)); store.dispatch(messageAdd(message));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages); expect(messages.length).toEqual(numMessages);
store.dispatch(actions.filterToggle("css")); store.dispatch(actions.filterToggle("css"));
messages = getAllMessages(store.getState()); messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages + 1); expect(messages.length).toEqual(numMessages + 1);
}); });
it("filters xhr messages", () => { it("filters xhr messages", () => {
let message = stubPreparedMessages.get("XHR GET request"); let message = stubPreparedMessages.get("XHR GET request");
store.dispatch(messageAdd(message)); store.dispatch(messageAdd(message));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages); expect(messages.length).toEqual(numMessages);
store.dispatch(actions.filterToggle("netxhr")); store.dispatch(actions.filterToggle("netxhr"));
messages = getAllMessages(store.getState()); messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages + 1); expect(messages.length).toEqual(numMessages + 1);
}); });
it("filters network messages", () => { it("filters network messages", () => {
let message = stubPreparedMessages.get("GET request"); let message = stubPreparedMessages.get("GET request");
store.dispatch(messageAdd(message)); store.dispatch(messageAdd(message));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages); expect(messages.length).toEqual(numMessages);
store.dispatch(actions.filterToggle("net")); store.dispatch(actions.filterToggle("net"));
messages = getAllMessages(store.getState()); messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages + 1); expect(messages.length).toEqual(numMessages + 1);
}); });
}); });
describe("Text filter", () => { describe("Text filter", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("danger")); store.dispatch(actions.filterTextSet("danger"));
let messages = getVisibleMessages(store.getState());
let messages = getAllMessages(store.getState()); expect(messages.length - numUnfilterableMessages).toEqual(1);
expect(messages.size - numUnfilterableMessages).toEqual(1);
}); });
it("matches unicode values", () => { it("matches unicode values", () => {
store.dispatch(actions.filterTextSet("鼬")); store.dispatch(actions.filterTextSet("鼬"));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size - numUnfilterableMessages).toEqual(1); expect(messages.length - numUnfilterableMessages).toEqual(1);
}); });
it("matches locations", () => { it("matches locations", () => {
@ -124,8 +123,8 @@ describe("Filtering", () => {
store.dispatch(actions.filterTextSet("search-location-test.js")); store.dispatch(actions.filterTextSet("search-location-test.js"));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size - numUnfilterableMessages).toEqual(1); expect(messages.length - numUnfilterableMessages).toEqual(1);
}); });
it("matches stacktrace functionName", () => { it("matches stacktrace functionName", () => {
@ -134,8 +133,8 @@ describe("Filtering", () => {
store.dispatch(actions.filterTextSet("testStacktraceFiltering")); store.dispatch(actions.filterTextSet("testStacktraceFiltering"));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size - numUnfilterableMessages).toEqual(1); expect(messages.length - numUnfilterableMessages).toEqual(1);
}); });
it("matches stacktrace location", () => { it("matches stacktrace location", () => {
@ -151,16 +150,16 @@ describe("Filtering", () => {
store.dispatch(actions.filterTextSet("search-location-test.js:85:13")); store.dispatch(actions.filterTextSet("search-location-test.js:85:13"));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size - numUnfilterableMessages).toEqual(1); expect(messages.length - numUnfilterableMessages).toEqual(1);
}); });
it("restores all messages once text is cleared", () => { it("restores all messages once text is cleared", () => {
store.dispatch(actions.filterTextSet("danger")); store.dispatch(actions.filterTextSet("danger"));
store.dispatch(actions.filterTextSet("")); store.dispatch(actions.filterTextSet(""));
let messages = getAllMessages(store.getState()); let messages = getVisibleMessages(store.getState());
expect(messages.size).toEqual(numMessages); expect(messages.length).toEqual(numMessages);
}); });
}); });
@ -189,7 +188,7 @@ describe("Clear filters", () => {
"net": false, "net": false,
"netxhr": true, "netxhr": true,
"warn": true, "warn": true,
"text": "foobar" "text": "foobar",
}); });
store.dispatch(actions.filtersClear()); store.dispatch(actions.filtersClear());
@ -204,7 +203,7 @@ describe("Clear filters", () => {
"net": false, "net": false,
"netxhr": false, "netxhr": false,
"warn": true, "warn": true,
"text": "" "text": "",
}); });
}); });
}); });

Просмотреть файл

@ -3,10 +3,12 @@
"use strict"; "use strict";
const { const {
getAllMessages,
getAllMessagesUiById,
getAllGroupsById, getAllGroupsById,
getAllMessagesById,
getAllMessagesTableDataById,
getAllMessagesUiById,
getCurrentGroup, getCurrentGroup,
getVisibleMessages,
} = require("devtools/client/webconsole/new-console-output/selectors/messages"); } = require("devtools/client/webconsole/new-console-output/selectors/messages");
const { const {
setupActions, setupActions,
@ -35,18 +37,16 @@ describe("Message reducer:", () => {
const message = stubPreparedMessages.get("console.log('foobar', 'test')"); const message = stubPreparedMessages.get("console.log('foobar', 'test')");
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.first()).toEqual(message); expect(messages.first()).toEqual(message);
}); });
it("increments repeat on a repeating message", () => { it("increments repeat on a repeating message", () => {
const { dispatch, getState } = setupStore([ const key1 = "console.log('foobar', 'test')";
"console.log('foobar', 'test')", const { dispatch, getState } = setupStore([key1, key1]);
"console.log('foobar', 'test')"
]);
const packet = clonePacket(stubPackets.get("console.log('foobar', 'test')")); const packet = clonePacket(stubPackets.get(key1));
// Repeat ID must be the same even if the timestamp is different. // Repeat ID must be the same even if the timestamp is different.
packet.message.timeStamp = 1; packet.message.timeStamp = 1;
@ -54,26 +54,23 @@ describe("Message reducer:", () => {
packet.message.timeStamp = 2; packet.message.timeStamp = 2;
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(1); expect(messages.size).toBe(1);
expect(messages.first().repeat).toBe(4); expect(messages.first().repeat).toBe(4);
}); });
it("does not clobber a unique message", () => { it("does not clobber a unique message", () => {
const { dispatch, getState } = setupStore([ const key1 = "console.log('foobar', 'test')";
"console.log('foobar', 'test')", const { dispatch, getState } = setupStore([key1, key1]);
"console.log('foobar', 'test')"
]);
const packet = stubPackets.get("console.log('foobar', 'test')"); const packet = stubPackets.get(key1);
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const packet2 = stubPackets.get("console.log(undefined)"); const packet2 = stubPackets.get("console.log(undefined)");
dispatch(actions.messageAdd(packet2)); dispatch(actions.messageAdd(packet2));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(2); expect(messages.size).toBe(2);
expect(messages.first().repeat).toBe(3); expect(messages.first().repeat).toBe(3);
expect(messages.last().repeat).toBe(1); expect(messages.last().repeat).toBe(1);
@ -84,7 +81,7 @@ describe("Message reducer:", () => {
dispatch(actions.messageAdd(stubPackets.get("console.clear()"))); dispatch(actions.messageAdd(stubPackets.get("console.clear()")));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(1); expect(messages.size).toBe(1);
expect(messages.first().parameters[0]).toBe("Console was cleared."); expect(messages.first().parameters[0]).toBe("Console was cleared.");
@ -93,13 +90,20 @@ describe("Message reducer:", () => {
it("clears the messages list in response to MESSAGES_CLEAR action", () => { it("clears the messages list in response to MESSAGES_CLEAR action", () => {
const { dispatch, getState } = setupStore([ const { dispatch, getState } = setupStore([
"console.log('foobar', 'test')", "console.log('foobar', 'test')",
"console.log(undefined)" "console.log(undefined)",
"console.table(['red', 'green', 'blue']);",
"console.group('bar')",
]); ]);
dispatch(actions.messagesClear()); dispatch(actions.messagesClear());
const messages = getAllMessages(getState()); const state = getState();
expect(messages.size).toBe(0); expect(getAllMessagesById(state).size).toBe(0);
expect(getVisibleMessages(state).length).toBe(0);
expect(getAllMessagesUiById(state).size).toBe(0);
expect(getAllGroupsById(state).size).toBe(0);
expect(getAllMessagesTableDataById(state).size).toBe(0);
expect(getCurrentGroup(state)).toBe(null);
}); });
it("properly limits number of messages", () => { it("properly limits number of messages", () => {
@ -113,12 +117,56 @@ describe("Message reducer:", () => {
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
} }
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.count()).toBe(logLimit); expect(messages.count()).toBe(logLimit);
expect(messages.first().parameters[0]).toBe(`message num 3`); expect(messages.first().parameters[0]).toBe(`message num 3`);
expect(messages.last().parameters[0]).toBe(`message num ${logLimit + 2}`); expect(messages.last().parameters[0]).toBe(`message num ${logLimit + 2}`);
}); });
it("properly limits number of messages when there are nested groups", () => {
const { dispatch, getState } = setupStore([]);
const logLimit = 1000;
const packet = clonePacket(stubPackets.get("console.log(undefined)"));
const packetGroup = clonePacket(stubPackets.get("console.group('bar')"));
const packetGroupEnd = clonePacket(stubPackets.get("console.groupEnd()"));
packetGroup.message.arguments = [`group-1`];
dispatch(actions.messageAdd(packetGroup));
packetGroup.message.arguments = [`group-1-1`];
dispatch(actions.messageAdd(packetGroup));
packetGroup.message.arguments = [`group-1-1-1`];
dispatch(actions.messageAdd(packetGroup));
packet.message.arguments = [`message-in-group-1`];
dispatch(actions.messageAdd(packet));
packet.message.arguments = [`message-in-group-2`];
dispatch(actions.messageAdd(packet));
// Closing group-1-1-1
dispatch(actions.messageAdd(packetGroupEnd));
// Closing group-1-1
dispatch(actions.messageAdd(packetGroupEnd));
// Closing group-1
dispatch(actions.messageAdd(packetGroupEnd));
for (let i = 0; i < logLimit; i++) {
packet.message.arguments = [`message-${i}`];
dispatch(actions.messageAdd(packet));
}
const visibleMessages = getVisibleMessages(getState());
const messages = getAllMessagesById(getState());
expect(messages.count()).toBe(logLimit);
expect(visibleMessages.length).toBe(logLimit);
expect(visibleMessages[0].parameters[0]).toBe(`message-0`);
expect(visibleMessages[logLimit - 1].parameters[0]).toBe(`message-${logLimit - 1}`);
// The groups were cleaned up.
const groups = getAllGroupsById(getState());
expect(groups.count()).toBe(0);
});
it("properly limits number of groups", () => { it("properly limits number of groups", () => {
const { dispatch, getState } = setupStore([]); const { dispatch, getState } = setupStore([]);
@ -129,17 +177,26 @@ describe("Message reducer:", () => {
const packetGroupEnd = clonePacket(stubPackets.get("console.groupEnd()")); const packetGroupEnd = clonePacket(stubPackets.get("console.groupEnd()"));
for (let i = 0; i < logLimit + 2; i++) { for (let i = 0; i < logLimit + 2; i++) {
packet.message.arguments = [`message num ${i}`];
dispatch(actions.messageAdd(packetGroup)); dispatch(actions.messageAdd(packetGroup));
packet.message.arguments = [`message-${i}-a`];
dispatch(actions.messageAdd(packet));
packet.message.arguments = [`message-${i}-b`];
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
dispatch(actions.messageAdd(packetGroupEnd)); dispatch(actions.messageAdd(packetGroupEnd));
} }
const messages = getAllMessages(getState()); const visibleMessages = getVisibleMessages(getState());
expect(messages.count()).toBe(logLimit * 2); const messages = getAllMessagesById(getState());
expect(messages.get(1).parameters[0]).toBe(`message num 2`); // We should have three times the logLimit since each group has one message inside.
expect(messages.last().parameters[0]).toBe(`message num ${logLimit + 1}`); expect(messages.count()).toBe(logLimit * 3);
});
// We should have logLimit number of groups
const groups = getAllGroupsById(getState());
expect(groups.count()).toBe(logLimit);
expect(visibleMessages[1].parameters[0]).toBe(`message-2-a`);
expect(messages.last().parameters[0]).toBe(`message-${logLimit + 1}-b`);
}).timeout(5000);
it("properly limits number of collapsed groups", () => { it("properly limits number of collapsed groups", () => {
const { dispatch, getState } = setupStore([]); const { dispatch, getState } = setupStore([]);
@ -152,17 +209,31 @@ describe("Message reducer:", () => {
const packetGroupEnd = clonePacket(stubPackets.get("console.groupEnd()")); const packetGroupEnd = clonePacket(stubPackets.get("console.groupEnd()"));
for (let i = 0; i < logLimit + 2; i++) { for (let i = 0; i < logLimit + 2; i++) {
packetGroupCollapsed.message.arguments = [`message num ${i}`]; packetGroupCollapsed.message.arguments = [`group-${i}`];
dispatch(actions.messageAdd(packetGroupCollapsed)); dispatch(actions.messageAdd(packetGroupCollapsed));
packet.message.arguments = [`message-${i}-a`];
dispatch(actions.messageAdd(packet));
packet.message.arguments = [`message-${i}-b`];
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
dispatch(actions.messageAdd(packetGroupEnd)); dispatch(actions.messageAdd(packetGroupEnd));
} }
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.count()).toBe(logLimit); // We should have three times the logLimit since each group has two message inside.
expect(messages.first().parameters[0]).toBe(`message num 2`); expect(messages.size).toBe(logLimit * 3);
expect(messages.last().parameters[0]).toBe(`message num ${logLimit + 1}`);
}); // We should have logLimit number of groups
const groups = getAllGroupsById(getState());
expect(groups.count()).toBe(logLimit);
expect(messages.first().parameters[0]).toBe(`group-2`);
expect(messages.last().parameters[0]).toBe(`message-${logLimit + 1}-b`);
const visibleMessages = getVisibleMessages(getState());
expect(visibleMessages.length).toBe(logLimit);
const lastVisibleMessage = visibleMessages[visibleMessages.length - 1];
expect(lastVisibleMessage.parameters[0]).toBe(`group-${logLimit + 1}`);
}).timeout(5000);
it("does not add null messages to the store", () => { it("does not add null messages to the store", () => {
const { dispatch, getState } = setupStore([]); const { dispatch, getState } = setupStore([]);
@ -170,7 +241,7 @@ describe("Message reducer:", () => {
const message = stubPackets.get("console.time('bar')"); const message = stubPackets.get("console.time('bar')");
dispatch(actions.messageAdd(message)); dispatch(actions.messageAdd(message));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(0); expect(messages.size).toBe(0);
}); });
@ -180,7 +251,7 @@ describe("Message reducer:", () => {
const packet = stubPackets.get("console.table('bar')"); const packet = stubPackets.get("console.table('bar')");
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
const tableMessage = messages.last(); const tableMessage = messages.last();
expect(tableMessage.level).toEqual(MESSAGE_TYPE.LOG); expect(tableMessage.level).toEqual(MESSAGE_TYPE.LOG);
}); });
@ -191,7 +262,7 @@ describe("Message reducer:", () => {
const message = stubPackets.get("console.group('bar')"); const message = stubPackets.get("console.group('bar')");
dispatch(actions.messageAdd(message)); dispatch(actions.messageAdd(message));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(1); expect(messages.size).toBe(1);
}); });
@ -204,7 +275,7 @@ describe("Message reducer:", () => {
const packet = stubPackets.get("console.log('foobar', 'test')"); const packet = stubPackets.get("console.log('foobar', 'test')");
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(2); expect(messages.size).toBe(2);
expect(messages.last().groupId).toBe(messages.first().id); expect(messages.last().groupId).toBe(messages.first().id);
}); });
@ -215,7 +286,7 @@ describe("Message reducer:", () => {
const message = stubPackets.get("console.groupEnd('bar')"); const message = stubPackets.get("console.groupEnd('bar')");
dispatch(actions.messageAdd(message)); dispatch(actions.messageAdd(message));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
expect(messages.size).toBe(0); expect(messages.size).toBe(0);
}); });
@ -228,8 +299,8 @@ describe("Message reducer:", () => {
dispatch(actions.messageAdd( dispatch(actions.messageAdd(
stubPackets.get("console.log('foobar', 'test')"))); stubPackets.get("console.log('foobar', 'test')")));
const messages = getAllMessages(getState()); const messages = getVisibleMessages(getState());
expect(messages.size).toBe(1); expect(messages.length).toBe(1);
}); });
it("adds console.dirxml call as console.log", () => { it("adds console.dirxml call as console.log", () => {
@ -238,7 +309,7 @@ describe("Message reducer:", () => {
const packet = stubPackets.get("console.dirxml(window)"); const packet = stubPackets.get("console.dirxml(window)");
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
const dirxmlMessage = messages.last(); const dirxmlMessage = messages.last();
expect(dirxmlMessage.level).toEqual(MESSAGE_TYPE.LOG); expect(dirxmlMessage.level).toEqual(MESSAGE_TYPE.LOG);
}); });
@ -251,7 +322,7 @@ describe("Message reducer:", () => {
const message = stubPackets.get("console.trace()"); const message = stubPackets.get("console.trace()");
dispatch(actions.messageAdd(message)); dispatch(actions.messageAdd(message));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
const messagesUi = getAllMessagesUiById(getState()); const messagesUi = getAllMessagesUiById(getState());
expect(messagesUi.size).toBe(1); expect(messagesUi.size).toBe(1);
expect(messagesUi.first()).toBe(messages.first().id); expect(messagesUi.first()).toBe(messages.first().id);
@ -278,7 +349,7 @@ describe("Message reducer:", () => {
const message = stubPackets.get("console.group('bar')"); const message = stubPackets.get("console.group('bar')");
dispatch(actions.messageAdd(message)); dispatch(actions.messageAdd(message));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
const messagesUi = getAllMessagesUiById(getState()); const messagesUi = getAllMessagesUiById(getState());
expect(messagesUi.size).toBe(1); expect(messagesUi.size).toBe(1);
expect(messagesUi.first()).toBe(messages.first().id); expect(messagesUi.first()).toBe(messages.first().id);
@ -302,7 +373,7 @@ describe("Message reducer:", () => {
const packet = stubPackets.get("console.group('bar')"); const packet = stubPackets.get("console.group('bar')");
dispatch(actions.messageAdd(packet)); dispatch(actions.messageAdd(packet));
const messages = getAllMessages(getState()); const messages = getAllMessagesById(getState());
const currentGroup = getCurrentGroup(getState()); const currentGroup = getCurrentGroup(getState());
expect(currentGroup).toBe(messages.first().id); expect(currentGroup).toBe(messages.first().id);
}); });
@ -313,19 +384,19 @@ describe("Message reducer:", () => {
"console.groupCollapsed('foo')" "console.groupCollapsed('foo')"
]); ]);
let messages = getAllMessages(getState()); let messages = getAllMessagesById(getState());
let currentGroup = getCurrentGroup(getState()); let currentGroup = getCurrentGroup(getState());
expect(currentGroup).toBe(messages.last().id); expect(currentGroup).toBe(messages.last().id);
const endFooPacket = stubPackets.get("console.groupEnd('foo')"); const endFooPacket = stubPackets.get("console.groupEnd('foo')");
dispatch(actions.messageAdd(endFooPacket)); dispatch(actions.messageAdd(endFooPacket));
messages = getAllMessages(getState()); messages = getAllMessagesById(getState());
currentGroup = getCurrentGroup(getState()); currentGroup = getCurrentGroup(getState());
expect(currentGroup).toBe(messages.first().id); expect(currentGroup).toBe(messages.first().id);
const endBarPacket = stubPackets.get("console.groupEnd('bar')"); const endBarPacket = stubPackets.get("console.groupEnd('bar')");
dispatch(actions.messageAdd(endBarPacket)); dispatch(actions.messageAdd(endBarPacket));
messages = getAllMessages(getState()); messages = getAllMessagesById(getState());
currentGroup = getCurrentGroup(getState()); currentGroup = getCurrentGroup(getState());
expect(currentGroup).toBe(null); expect(currentGroup).toBe(null);
}); });
@ -349,7 +420,7 @@ describe("Message reducer:", () => {
const barPacket = stubPackets.get("console.group('bar')"); const barPacket = stubPackets.get("console.group('bar')");
dispatch(actions.messageAdd(barPacket)); dispatch(actions.messageAdd(barPacket));
let messages = getAllMessages(getState()); let messages = getAllMessagesById(getState());
let groupsById = getAllGroupsById(getState()); let groupsById = getAllGroupsById(getState());
expect(groupsById.size).toBe(1); expect(groupsById.size).toBe(1);
expect(groupsById.has(messages.first().id)).toBe(true); expect(groupsById.has(messages.first().id)).toBe(true);
@ -357,7 +428,7 @@ describe("Message reducer:", () => {
const fooPacket = stubPackets.get("console.groupCollapsed('foo')"); const fooPacket = stubPackets.get("console.groupCollapsed('foo')");
dispatch(actions.messageAdd(fooPacket)); dispatch(actions.messageAdd(fooPacket));
messages = getAllMessages(getState()); messages = getAllMessagesById(getState());
groupsById = getAllGroupsById(getState()); groupsById = getAllGroupsById(getState());
expect(groupsById.size).toBe(2); expect(groupsById.size).toBe(2);
expect(groupsById.has(messages.last().id)).toBe(true); expect(groupsById.has(messages.last().id)).toBe(true);

Просмотреть файл

@ -6,7 +6,7 @@
const expect = require("expect"); const expect = require("expect");
const actions = require("devtools/client/webconsole/new-console-output/actions/index"); const actions = require("devtools/client/webconsole/new-console-output/actions/index");
const { getAllMessages } = require("devtools/client/webconsole/new-console-output/selectors/messages"); const { getVisibleMessages } = require("devtools/client/webconsole/new-console-output/selectors/messages");
const { setupStore } = require("devtools/client/webconsole/new-console-output/test/helpers"); const { setupStore } = require("devtools/client/webconsole/new-console-output/test/helpers");
describe("Searching in grips", () => { describe("Searching in grips", () => {
@ -20,42 +20,42 @@ describe("Searching in grips", () => {
describe("Search in table & array & object props", () => { describe("Search in table & array & object props", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("red")); store.dispatch(actions.filterTextSet("red"));
expect(getAllMessages(store.getState()).size).toEqual(3); expect(getVisibleMessages(store.getState()).length).toEqual(3);
}); });
}); });
describe("Search in object value", () => { describe("Search in object value", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("redValue")); store.dispatch(actions.filterTextSet("redValue"));
expect(getAllMessages(store.getState()).size).toEqual(1); expect(getVisibleMessages(store.getState()).length).toEqual(1);
}); });
}); });
describe("Search in regex", () => { describe("Search in regex", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("a.b.c")); store.dispatch(actions.filterTextSet("a.b.c"));
expect(getAllMessages(store.getState()).size).toEqual(1); expect(getVisibleMessages(store.getState()).length).toEqual(1);
}); });
}); });
describe("Search in map values", () => { describe("Search in map values", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("value1")); store.dispatch(actions.filterTextSet("value1"));
expect(getAllMessages(store.getState()).size).toEqual(1); expect(getVisibleMessages(store.getState()).length).toEqual(1);
}); });
}); });
describe("Search in map keys", () => { describe("Search in map keys", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("key1")); store.dispatch(actions.filterTextSet("key1"));
expect(getAllMessages(store.getState()).size).toEqual(1); expect(getVisibleMessages(store.getState()).length).toEqual(1);
}); });
}); });
describe("Search in text", () => { describe("Search in text", () => {
it("matches on value grips", () => { it("matches on value grips", () => {
store.dispatch(actions.filterTextSet("myobj")); store.dispatch(actions.filterTextSet("myobj"));
expect(getAllMessages(store.getState()).size).toEqual(1); expect(getVisibleMessages(store.getState()).length).toEqual(1);
}); });
}); });
@ -63,19 +63,19 @@ describe("Searching in grips", () => {
it("matches on network messages", () => { it("matches on network messages", () => {
store.dispatch(actions.filterToggle("net")); store.dispatch(actions.filterToggle("net"));
store.dispatch(actions.filterTextSet("get")); store.dispatch(actions.filterTextSet("get"));
expect(getAllMessages(store.getState()).size).toEqual(1); expect(getVisibleMessages(store.getState()).length).toEqual(1);
}); });
}); });
describe("Search in frame", () => { describe("Search in frame", () => {
it("matches on file name", () => { it("matches on file name", () => {
store.dispatch(actions.filterTextSet("test-console-api.html:1:27")); store.dispatch(actions.filterTextSet("test-console-api.html:1:27"));
expect(getAllMessages(store.getState()).size).toEqual(7); expect(getVisibleMessages(store.getState()).length).toEqual(7);
}); });
it("do not match on full url", () => { it("do not match on full url", () => {
store.dispatch(actions.filterTextSet("http://example.com/browser/devtools")); store.dispatch(actions.filterTextSet("http://example.com/browser/devtools"));
expect(getAllMessages(store.getState()).size).toEqual(0); expect(getVisibleMessages(store.getState()).length).toEqual(0);
}); });
}); });
}); });