console-feed-modern
Version:
A React component that displays console logs from the current page, an iframe or transported across a server
61 lines • 5.6 kB
JavaScript
import Hook from '..';
import console from './console';
import Log from './Log';
import { Decode } from '../..';
it('hooks the console', () => {
Hook(console, log => {
console.logs.push(log);
});
expect(console.feed).toBeTruthy();
});
it('forwards log events', async () => {
const result = await Log('log', 'test');
expect(result).toBeTruthy();
});
it('decodes messages', () => {
const decoded = Decode(console.logs[0]);
expect(decoded.method).toEqual('log');
expect(decoded.data).toMatchSnapshot();
});
it('correctly encodes a HTMLElement', async () => {
const result = await Log('warn', document.documentElement);
expect(result).toBeTruthy();
const decoded = Decode(result);
expect(decoded.method).toEqual('warn');
expect(decoded.data).toMatchSnapshot();
});
it('correctly encodes Functions', async () => {
// prettier-ignore
const result = await Log('error', function myFunc() { });
const decoded = Decode(result);
expect(decoded.method).toEqual('error');
expect(decoded.data).toMatchSnapshot();
});
it('correctly encodes nested values', async () => {
const input = {
function: function myFunc() { },
document: document.documentElement,
nested: [[[new Promise(() => { })]]],
recursive: null
};
input.recursive = input;
const result = await Log('debug', input);
const decoded = Decode(result);
expect(decoded.method).toEqual('debug');
expect(decoded.data).toMatchSnapshot();
});
it('disables encoding with a flag', async () => {
Hook(console, log => {
console.logs.push(log);
}, false);
const input = {
function: function myFunc() { },
document: document.documentElement,
nested: [[[new Promise(() => { })]]],
recursive: null
};
input.recursive = input;
const result = await Log('debug', input);
expect(result.data).toMatchSnapshot();
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9vay5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0hvb2svX190ZXN0c19fL0hvb2suc3BlYy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sSUFBSSxDQUFBO0FBQ3JCLE9BQU8sT0FBTyxNQUFNLFdBQVcsQ0FBQTtBQUMvQixPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUE7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUU5QixFQUFFLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxFQUFFO0lBQzNCLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7SUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFBO0FBQ25DLENBQUMsQ0FBQyxDQUFBO0FBRUYsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO0lBQ25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUE7QUFDN0IsQ0FBQyxDQUFDLENBQUE7QUFFRixFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQzFCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQTtBQUN4QyxD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