Fix: Console filter

This commit is contained in:
surunzi
2016-08-26 12:05:15 +08:00
parent cb90f11d4b
commit c3f2dae3ee
4 changed files with 41 additions and 10 deletions

View File

@@ -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());

View File

@@ -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)
{

View File

@@ -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;
});

View File

@@ -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');
});
});