diff --git a/src/Console/Log.es6 b/src/Console/Log.es6 index 6a56826..11a20d7 100644 --- a/src/Console/Log.es6 +++ b/src/Console/Log.es6 @@ -260,7 +260,8 @@ function formatJs(code) function formatMsg(args, {htmlForEl = true} = {}) { - args = substituteStr(args); + let needStrSubstitution = util.isStr(args[0]) && args.length !== 1; + if (needStrSubstitution) args = substituteStr(args); for (let i = 0, len = args.length; i < len; i++) { @@ -284,7 +285,7 @@ function formatMsg(args, {htmlForEl = true} = {}) } else { val = util.toStr(val); - if (i !== 0) val = util.escape(val); + if (i !== 0 || !needStrSubstitution) val = util.escape(val); args[i] = val; } } @@ -296,9 +297,7 @@ var formatDir = args => formatMsg(args, {htmlForEl: false}); function substituteStr(args) { - if (!util.isStr(args[0]) || args.length === 1) return args; - - var str = util.escape(args[0]), + let str = util.escape(args[0]), isInCss = false, newStr = ''; diff --git a/test/console.js b/test/console.js index cd07e18..d7ddaeb 100644 --- a/test/console.js +++ b/test/console.js @@ -1,25 +1,29 @@ var tool = eruda.get('console'), $tool = $('.eruda-console'); +beforeEach(function () +{ + tool.clear(); +}); + describe('log', function () { + it('string', function () { - var text = 'This is a log'; + var text = 'This is a log'; - tool.clear().log(text); + tool.log(text); expect($tool.find('.eruda-log')).toContainText(text); }); it('clear', function () { - tool.clear(); expect($tool.find('.eruda-log')).toHaveLength(0); }); it('recognize url', function () { - tool.clear(); tool.log('http://liriliri.github.io/eruda/?plugin=fps'); expect($tool.find('.eruda-log')).toContainHtml('http://liriliri.github.io/eruda/?plugin=fps'); }); @@ -28,38 +32,38 @@ describe('log', function () { var obj = {a: 1}; - tool.clear().log(obj); + tool.log(obj); expect($tool.find('.eruda-log')).toContainText('Object { a: 1 }'); }); it('dir html element', function () { - tool.clear().dir(document.createElement('script')); + tool.dir(document.createElement('script')); expect($tool.find('.eruda-log')).not.toContainText(''); }); it('html', function () { - tool.clear().html('Blue'); + tool.html('Blue'); expect($tool.find('.eruda-html')).toContainElement('span.color-blue'); }); it('timing', function () { - tool.clear().time('eruda'); - tool.clear().timeEnd('eruda'); + tool.time('eruda'); + tool.timeEnd('eruda'); expect($tool.find('.eruda-html')).toHaveText(/eruda: \d+ms/); }); it('error', function () { - tool.clear().error(new Error('error test')); + tool.error(new Error('error test')); expect($tool.find('.eruda-error')).toContainElement('.eruda-stack'); }); it('assert', function () { - tool.clear().assert(true, 'assert'); + tool.assert(true, 'assert'); expect($tool.find('.eruda-log-item')).toHaveLength(0); tool.assert(false, 'assert'); @@ -68,7 +72,7 @@ describe('log', function () it('count', function () { - tool.clear().count('test').clear(); + tool.count('test').clear(); tool.count('test'); expect($tool.find('.eruda-html')).toContainText('test: 2'); }); @@ -78,40 +82,39 @@ describe('substitution', function () { it('number', function () { - tool.clear().log('Eruda is %d', 1.2, 'year old'); + tool.log('Eruda is %d', 1.2, 'year old'); expect($tool.find('.eruda-log')).toContainText('Eruda is 1 year old'); - tool.clear().log('%i', 1.2, 'year old'); + tool.log('%i', 1.2, 'year old'); expect($tool.find('.eruda-log')).toContainText('1 year old'); - tool.clear().log('%f', 1.2, 'year old'); + tool.log('%f', 1.2, 'year old'); expect($tool.find('.eruda-log')).toContainText('1.2 year old'); }); it('string', function () { - tool.clear().log('My name is %s', 'eruda'); + tool.log('My name is %s', 'eruda'); expect($tool.find('.eruda-log')).toContainText('My name is eruda'); }); it('object', function () { - tool.clear().log('Object is %O', {a: 1}); + tool.log('Object is %O', {a: 1}); expect($tool.find('.eruda-log')).toContainText('Object is { a: 1 }'); - tool.clear().log('Dom is %o', document.createElement('script')); + tool.log('Dom is %o', document.createElement('script')); expect($tool.find('.eruda-log')).toContainText('Dom is '); }); it('style', function () { - tool.clear().log('%cblue%cgreen', 'color:blue', 'color:green'); + tool.log('%cblue%cgreen', 'color:blue', 'color:green'); expect($tool.find('.eruda-log')).toContainHtml('bluegreen'); }); it('Repeat log', function () { - tool.clear(); for (var i = 0; i < 10; i++) tool.log(1); var $log = $tool.find('.eruda-log-item'); expect($log).toHaveLength(1); @@ -123,26 +126,26 @@ describe('table', function () { it('wrong args', function () { - tool.clear().table('test'); + tool.table('test'); expect($tool.find('.eruda-table')).not.toContainElement('table'); }); it('sort keys', function () { - tool.clear().table([{a: 1}, {d: 2, a: 2}, {c: 1}]); + tool.table([{a: 1}, {d: 2, a: 2}, {c: 1}]); expect($tool.find('.eruda-table thead tr')).toContainHtml('