@@ -1654,6 +1654,7 @@ describe('Test lib.js:', function() {
16541654
16551655 function consoleFn ( name , hasApply , messages ) {
16561656 var out = function ( ) {
1657+ if ( hasApply ) expect ( this ) . toBe ( window . console ) ;
16571658 var args = [ ] ;
16581659 for ( var i = 0 ; i < arguments . length ; i ++ ) args . push ( arguments [ i ] ) ;
16591660 messages . push ( [ name , args ] ) ;
@@ -1664,12 +1665,13 @@ describe('Test lib.js:', function() {
16641665 return out ;
16651666 }
16661667
1667- function mockConsole ( hasApply , hasTrace ) {
1668+ function mockConsole ( hasApply , hasTrace , hasError ) {
16681669 var out = {
16691670 MESSAGES : [ ]
16701671 } ;
16711672 out . log = consoleFn ( 'log' , hasApply , out . MESSAGES ) ;
1672- out . error = consoleFn ( 'error' , hasApply , out . MESSAGES ) ;
1673+
1674+ if ( hasError ) out . error = consoleFn ( 'error' , hasApply , out . MESSAGES ) ;
16731675
16741676 if ( hasTrace ) out . trace = consoleFn ( 'trace' , hasApply , out . MESSAGES ) ;
16751677
@@ -1687,7 +1689,7 @@ describe('Test lib.js:', function() {
16871689 } ) ;
16881690
16891691 it ( 'emits one console message if apply is available' , function ( ) {
1690- var c = window . console = mockConsole ( true , true ) ;
1692+ var c = window . console = mockConsole ( true , true , true ) ;
16911693 config . logging = 2 ;
16921694
16931695 Lib . log ( 'tick' , 'tock' , 'tick' , 'tock' , 1 ) ;
@@ -1702,7 +1704,7 @@ describe('Test lib.js:', function() {
17021704 } ) ;
17031705
17041706 it ( 'falls back on console.log if no trace' , function ( ) {
1705- var c = window . console = mockConsole ( true , false ) ;
1707+ var c = window . console = mockConsole ( true , false , true ) ;
17061708 config . logging = 2 ;
17071709
17081710 Lib . log ( 'Hi' ) ;
@@ -1715,7 +1717,7 @@ describe('Test lib.js:', function() {
17151717 } ) ;
17161718
17171719 it ( 'falls back on separate calls if no apply' , function ( ) {
1718- var c = window . console = mockConsole ( false , false ) ;
1720+ var c = window . console = mockConsole ( false , false , true ) ;
17191721 config . logging = 2 ;
17201722
17211723 Lib . log ( 'tick' , 'tock' , 'tick' , 'tock' , 1 ) ;
@@ -1744,7 +1746,7 @@ describe('Test lib.js:', function() {
17441746 } ) ;
17451747
17461748 it ( 'omits .log at log level 1' , function ( ) {
1747- var c = window . console = mockConsole ( true , true ) ;
1749+ var c = window . console = mockConsole ( true , true , true ) ;
17481750 config . logging = 1 ;
17491751
17501752 Lib . log ( 1 ) ;
@@ -1758,7 +1760,7 @@ describe('Test lib.js:', function() {
17581760 } ) ;
17591761
17601762 it ( 'logs nothing at log level 0' , function ( ) {
1761- var c = window . console = mockConsole ( true , true ) ;
1763+ var c = window . console = mockConsole ( true , true , true ) ;
17621764 config . logging = 0 ;
17631765
17641766 Lib . log ( 1 ) ;
@@ -1767,6 +1769,22 @@ describe('Test lib.js:', function() {
17671769
17681770 expect ( c . MESSAGES ) . toEqual ( [ ] ) ;
17691771 } ) ;
1772+
1773+ it ( 'falls back on simple log if there is no console.error' , function ( ) {
1774+ // TODO
1775+
1776+ var c = window . console = mockConsole ( true , true , false ) ;
1777+ config . logging = 2 ;
1778+
1779+ Lib . error ( 'who are you' , 'who who... are you' , { a : 1 , b : 2 } ) ;
1780+
1781+ expect ( c . MESSAGES ) . toEqual ( [
1782+ [ 'log' , [ 'ERROR:' ] ] ,
1783+ [ 'log' , [ 'who are you' ] ] ,
1784+ [ 'log' , [ 'who who... are you' ] ] ,
1785+ [ 'log' , [ { a : 1 , b : 2 } ] ]
1786+ ] ) ;
1787+ } ) ;
17701788 } ) ;
17711789
17721790 describe ( 'keyedContainer' , function ( ) {
0 commit comments