areMessagesSimilar.test.js (1962B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 "use strict"; 4 5 const { 6 areMessagesSimilar, 7 } = require("resource://devtools/client/webconsole/utils/messages.js"); 8 const { 9 stubPreparedMessages, 10 } = require("resource://devtools/client/webconsole/test/node/fixtures/stubs/index.js"); 11 12 const expect = require("expect"); 13 14 describe("areMessagesSimilar:", () => { 15 it("returns true for duplicated messages", () => { 16 const baseMessage = stubPreparedMessages.get( 17 "console.log('foobar', 'test')" 18 ); 19 20 // Repeat ID must be the same even if the timestamp is different. 21 const message1 = Object.assign({}, baseMessage, { timeStamp: 1 }); 22 const message2 = Object.assign({}, baseMessage, { timeStamp: 2 }); 23 24 expect(areMessagesSimilar(message1, message2)).toEqual(true); 25 }); 26 27 it("returns false for different messages", () => { 28 const message1 = stubPreparedMessages.get("console.log('foobar', 'test')"); 29 const message2 = Object.assign({}, message1, { 30 parameters: ["funny", "monkey"], 31 }); 32 expect(areMessagesSimilar(message1, message2)).toEqual(false); 33 }); 34 35 it("returns false for messages with different severities", () => { 36 const message1 = stubPreparedMessages.get("console.log('foobar', 'test')"); 37 const message2 = Object.assign({}, message1, { level: "error" }); 38 expect(areMessagesSimilar(message1, message2)).toEqual(false); 39 }); 40 41 it("return false for messages with different falsy values", () => { 42 const messageNaN = stubPreparedMessages.get("console.log(NaN)"); 43 const messageUnd = stubPreparedMessages.get("console.log(undefined)"); 44 const messageNul = stubPreparedMessages.get("console.log(null)"); 45 46 expect(areMessagesSimilar(messageNaN, messageUnd)).toEqual(false); 47 expect(areMessagesSimilar(messageUnd, messageNul)).toEqual(false); 48 expect(areMessagesSimilar(messageNul, messageNaN)).toEqual(false); 49 }); 50 });