mirror of
https://github.com/liriliri/eruda.git
synced 2026-03-20 09:38:37 +08:00
Fix: Console filter
This commit is contained in:
@@ -127,7 +127,7 @@ export default class Console extends Tool
|
||||
$control.on('click', '.clear-console', () => logger.clear())
|
||||
.on('click', '.filter', function ()
|
||||
{
|
||||
logger.filter(util.$(this).data('filter'))
|
||||
logger.filter(util.$(this).data('filter'));
|
||||
})
|
||||
.on('click', '.help', () => logger.help());
|
||||
|
||||
|
||||
@@ -24,12 +24,8 @@ export default class Log
|
||||
this.time = getCurTime();
|
||||
this.from = getFrom();
|
||||
}
|
||||
}
|
||||
get formattedMsg()
|
||||
{
|
||||
if (!this._formattedMsg) this._formatMsg();
|
||||
|
||||
return this._formattedMsg;
|
||||
this._formatMsg();
|
||||
}
|
||||
_needSrc()
|
||||
{
|
||||
@@ -79,6 +75,7 @@ export default class Log
|
||||
let err = args[0];
|
||||
icon = 'times-circle';
|
||||
err = util.isErr(err) ? err : new Error(err);
|
||||
this.src = err;
|
||||
msg = formatErr(err);
|
||||
break;
|
||||
case 'table':
|
||||
@@ -100,7 +97,7 @@ export default class Log
|
||||
msg = render({msg, type, icon, idx, displayHeader, time, from});
|
||||
|
||||
delete this.args;
|
||||
this._formattedMsg = msg;
|
||||
this.formattedMsg = msg;
|
||||
}
|
||||
static click(type, log, $el)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,7 @@ export default class Logger extends util.Emitter
|
||||
{
|
||||
this._filter = val;
|
||||
this.emit('filter', val);
|
||||
|
||||
return this.render();
|
||||
}
|
||||
log(...args)
|
||||
@@ -192,7 +193,7 @@ export default class Logger extends util.Emitter
|
||||
return logs.filter(val =>
|
||||
{
|
||||
if (isFn) return filter(val);
|
||||
if (isRegexp) return filter.test(util.stripHtmlTag(val.val));
|
||||
if (isRegexp) return filter.test(util.stripHtmlTag(val.formattedMsg));
|
||||
|
||||
return val.ignoreFilter || val.type === filter;
|
||||
});
|
||||
|
||||
@@ -41,6 +41,7 @@ describe('log', function ()
|
||||
it('error', function ()
|
||||
{
|
||||
tool.clear().error(new Error('error test'));
|
||||
expect($tool.find('.eruda-error')).toContainElement('.eruda-stack');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -108,10 +109,10 @@ describe('filter', function ()
|
||||
// Test case from https://github.com/liriliri/eruda/issues/14
|
||||
it('function', function ()
|
||||
{
|
||||
/*tool.clear().filter(function (log)
|
||||
tool.clear().filter(function (log)
|
||||
{
|
||||
return !(log.type === 'error' && /deprecated(.|\n)*stringify/.test(log.src.stack));
|
||||
});*/
|
||||
});
|
||||
|
||||
var obj = {};
|
||||
Object.defineProperty(obj, 'a', {
|
||||
@@ -124,5 +125,37 @@ describe('filter', function ()
|
||||
});
|
||||
tool.log(obj);
|
||||
expect($tool.find('.eruda-logs li').length).toEqual(1);
|
||||
|
||||
tool.filter('all');
|
||||
});
|
||||
|
||||
it('all info error warn log', function ()
|
||||
{
|
||||
tool.clear().log('log').info('info').error('error').warn('warn');
|
||||
expect($tool.find('.eruda-log-item')).toHaveLength(4);
|
||||
|
||||
tool.filter('info');
|
||||
expect($tool.find('.eruda-log-item')).toHaveLength(1);
|
||||
expect($tool.find('.eruda-info')).toHaveLength(1);
|
||||
|
||||
tool.filter('error');
|
||||
expect($tool.find('.eruda-log-item')).toHaveLength(1);
|
||||
expect($tool.find('.eruda-error')).toHaveLength(1);
|
||||
|
||||
tool.filter('warn');
|
||||
expect($tool.find('.eruda-log-item')).toHaveLength(1);
|
||||
expect($tool.find('.eruda-warn')).toHaveLength(1);
|
||||
|
||||
tool.filter('all');
|
||||
});
|
||||
|
||||
it('regex', function ()
|
||||
{
|
||||
tool.clear().log('test').log('test2');
|
||||
expect($tool.find('.eruda-log-item')).toHaveLength(2);
|
||||
|
||||
tool.filter(/test2/);
|
||||
expect($tool.find('.eruda-log-item')).toHaveLength(1);
|
||||
expect($tool.find('.eruda-log')).toContainText('test2');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user