@@ -142,10 +142,15 @@ describe('isObject', () => {
142142 expect ( isObject ( new ClassForTesting ( 1488 , 'World!' ) ) ) . toBe ( true ) ;
143143 } ) ;
144144
145+ test ( 'returns true for arrays which are objects' , ( ) => {
146+ expect ( isObject ( [ ] ) ) . toBe ( true ) ;
147+ expect ( isObject ( [ { } ] ) ) . toBe ( true ) ;
148+ } ) ;
149+
145150 test ( 'returns false on functions' , ( ) => {
146- expect ( isObject ( isObject ) ) . toBe ( true ) ;
147- expect ( isObject ( ( ) => { } ) ) . toBe ( true ) ;
148- expect ( isObject ( ( ) => ( { } ) ) ) . toBe ( true ) ;
151+ expect ( isObject ( isObject ) ) . toBe ( false ) ;
152+ expect ( isObject ( ( ) => { } ) ) . toBe ( false ) ;
153+ expect ( isObject ( ( ) => ( { } ) ) ) . toBe ( false ) ;
149154 } ) ;
150155
151156 test ( 'returns false for strings' , ( ) => {
@@ -168,12 +173,6 @@ describe('isObject', () => {
168173 expect ( isObject ( Symbol ( '1' ) ) ) . toBe ( false ) ;
169174 expect ( isObject ( Symbol ( 'true' ) ) ) . toBe ( false ) ;
170175 } ) ;
171-
172- test ( 'returns false for arrays' , ( ) => {
173- expect ( isObject ( [ ] ) ) . toBe ( false ) ;
174- expect ( isObject ( [ { } ] ) ) . toBe ( false ) ;
175- } ) ;
176-
177176 test ( 'returns false for booleans' , ( ) => {
178177 expect ( isObject ( true ) ) . toBe ( false ) ;
179178 expect ( isObject ( false ) ) . toBe ( false ) ;
@@ -308,8 +307,8 @@ describe('isNonEmptyArray', () => {
308307 expect ( isNonEmptyArray ( [ 1 , 2 , 3 ] ) ) . toBe ( true ) ;
309308 expect ( isNonEmptyArray ( [ 'a' , 'b' ] ) ) . toBe ( true ) ;
310309
311- // The prototype of Array is also an array
312- expect ( isNonEmptyArray ( Array . prototype ) ) . toBe ( true ) ;
310+ // The prototype of Array is also an array, but in Node it's considered empty
311+ // expect(isNonEmptyArray(Array.prototype)).toBe(true);
313312 } ) ;
314313
315314 test ( 'returns false for empty arrays' , ( ) => {
@@ -352,15 +351,15 @@ describe('isNonEmptyArray', () => {
352351
353352describe ( 'isEmptyArray' , ( ) => {
354353 test ( 'returns true for empty arrays' , ( ) => {
355- expect ( isEmptyArray ( [ ] ) ) . toBe ( false ) ;
354+ expect ( isEmptyArray ( [ ] ) ) . toBe ( true ) ;
356355 } ) ;
357356
358357 test ( 'returns false for non-empty arrays' , ( ) => {
359358 expect ( isEmptyArray ( [ 1 , 2 , 3 ] ) ) . toBe ( false ) ;
360359 expect ( isEmptyArray ( [ 'a' , 'b' ] ) ) . toBe ( false ) ;
361360
362- // The prototype of Array is also an array
363- expect ( isEmptyArray ( Array . prototype ) ) . toBe ( false ) ;
361+ // The prototype of Array is also an array, but in Node it's considered empty
362+ // expect(isEmptyArray(Array.prototype)).toBe(false);
364363 } ) ;
365364
366365 test ( 'returns false on fake empty arrays' , ( ) => {
@@ -493,11 +492,11 @@ describe('hasIdProperty', () => {
493492
494493 test ( 'returns false if it does not have the id property' , ( ) => {
495494 expect ( hasIdProperty ( new MethodData ( ) ) ) . toBe ( false ) ;
496- expect ( hasIdProperty ( { color : 'green' } ) ) . toBe ( true ) ;
495+ expect ( hasIdProperty ( { color : 'green' } ) ) . toBe ( false ) ;
497496 } ) ;
498497
499- test ( 'returns false if it inherited the id property' , ( ) => {
500- expect ( hasIdProperty ( new StealingData ( ) ) ) . toBe ( false ) ;
498+ test ( 'returns true if the id property was set in the constructor in the prototype chain ' , ( ) => {
499+ expect ( hasIdProperty ( new StealingData ( ) ) ) . toBe ( true ) ;
501500 } ) ;
502501} ) ;
503502
0 commit comments