11import test from 'ava' ;
2+
3+ import { Arg } from '../src' ;
24import { areArgumentArraysEqual } from '../src/Utilities' ;
3- import { Arg } from '../src/index' ;
45
56const testObject = { "foo" : "bar" } ;
67const testArray = [ "a" , 1 , true ] ;
7- const testFunc = ( ) => { } ;
8+
9+ // #90: Infinite recursion in deepEqual https://github.com/ffMathy/FluffySpoon.JavaScript.Testing.Faking/blob/master/spec/issues/90.test.ts
10+ const parent = { } as any ;
11+ parent . child = parent ;
12+ const root = { } as any ;
13+ root . path = { to : { nested : root } } ;
14+
15+ const testFunc = ( ) => { } ;
816
917//#region areArgumentArraysEqual
1018test ( 'areArgumentArraysEqual should return valid result for primitive arguments' , t => {
1119 // single
12- t . true ( areArgumentArraysEqual ( [ '' ] , [ '' ] ) ) ;
13- t . true ( areArgumentArraysEqual ( [ 'a' ] , [ 'a' ] ) ) ;
14- t . true ( areArgumentArraysEqual ( [ 0 ] , [ 0 ] ) ) ;
15- t . true ( areArgumentArraysEqual ( [ 1 ] , [ 1 ] ) ) ;
16- t . true ( areArgumentArraysEqual ( [ true ] , [ true ] ) ) ;
17- t . true ( areArgumentArraysEqual ( [ false ] , [ false ] ) ) ;
18- t . true ( areArgumentArraysEqual ( [ undefined ] , [ undefined ] ) ) ;
19- t . true ( areArgumentArraysEqual ( [ null ] , [ null ] ) ) ;
20- t . true ( areArgumentArraysEqual ( [ testObject ] , [ testObject ] ) ) ;
21- t . true ( areArgumentArraysEqual ( [ testArray ] , [ testArray ] ) ) ;
22- t . true ( areArgumentArraysEqual ( [ testFunc ] , [ testFunc ] ) ) ;
20+ t . true ( areArgumentArraysEqual ( [ '' ] , [ '' ] ) ) ;
21+ t . true ( areArgumentArraysEqual ( [ 'a' ] , [ 'a' ] ) ) ;
22+ t . true ( areArgumentArraysEqual ( [ 0 ] , [ 0 ] ) ) ;
23+ t . true ( areArgumentArraysEqual ( [ 1 ] , [ 1 ] ) ) ;
24+ t . true ( areArgumentArraysEqual ( [ true ] , [ true ] ) ) ;
25+ t . true ( areArgumentArraysEqual ( [ false ] , [ false ] ) ) ;
26+ t . true ( areArgumentArraysEqual ( [ undefined ] , [ undefined ] ) ) ;
27+ t . true ( areArgumentArraysEqual ( [ null ] , [ null ] ) ) ;
28+ t . true ( areArgumentArraysEqual ( [ testObject ] , [ testObject ] ) ) ;
29+ t . true ( areArgumentArraysEqual ( [ testArray ] , [ testArray ] ) ) ;
30+ t . true ( areArgumentArraysEqual ( [ testFunc ] , [ testFunc ] ) ) ;
31+ t . true ( areArgumentArraysEqual ( [ parent ] , [ parent ] ) ) ;
32+ t . true ( areArgumentArraysEqual ( [ root ] , [ root ] ) ) ;
2333
24- t . false ( areArgumentArraysEqual ( [ 'a' ] , [ 'b' ] ) ) ;
25- t . false ( areArgumentArraysEqual ( [ 1 ] , [ 2 ] ) ) ;
26- t . false ( areArgumentArraysEqual ( [ true ] , [ false ] ) ) ;
27- t . false ( areArgumentArraysEqual ( [ undefined ] , [ null ] ) ) ;
28- t . false ( areArgumentArraysEqual ( [ testObject ] , [ testArray ] ) ) ;
34+ t . false ( areArgumentArraysEqual ( [ 'a' ] , [ 'b' ] ) ) ;
35+ t . false ( areArgumentArraysEqual ( [ 1 ] , [ 2 ] ) ) ;
36+ t . false ( areArgumentArraysEqual ( [ true ] , [ false ] ) ) ;
37+ t . false ( areArgumentArraysEqual ( [ undefined ] , [ null ] ) ) ;
38+ t . false ( areArgumentArraysEqual ( [ testObject ] , [ testArray ] ) ) ;
2939
3040 // multi
31- t . true ( areArgumentArraysEqual ( [ 1 , 2 , 3 ] , [ 1 , 2 , 3 ] ) ) ;
41+ t . true ( areArgumentArraysEqual ( [ 1 , 2 , 3 ] , [ 1 , 2 , 3 ] ) ) ;
3242
33- t . false ( areArgumentArraysEqual ( [ 1 , 2 , 3 ] , [ 3 , 2 , 1 ] ) ) ;
34- t . false ( areArgumentArraysEqual ( [ 1 , 2 , 3 , 4 ] , [ 1 , 2 , 3 ] ) ) ;
35- t . false ( areArgumentArraysEqual ( [ 1 , 2 , 3 ] , [ 1 , 2 , 3 , 4 ] ) ) ;
36- } )
43+ t . false ( areArgumentArraysEqual ( [ 1 , 2 , 3 ] , [ 3 , 2 , 1 ] ) ) ;
44+ t . false ( areArgumentArraysEqual ( [ 1 , 2 , 3 , 4 ] , [ 1 , 2 , 3 ] ) ) ;
45+ t . false ( areArgumentArraysEqual ( [ 1 , 2 , 3 ] , [ 1 , 2 , 3 , 4 ] ) ) ;
46+ } ) ;
3747
3848test ( 'areArgumentArraysEqual should return valid result using Arg.all()' , t => {
39- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ ] ) ) ;
40- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 0 ] ) ) ;
41- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 1 ] ) ) ;
42- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 'string' ] ) ) ;
43- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ true ] ) ) ;
44- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ false ] ) ) ;
45- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ null ] ) ) ;
46- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ undefined ] ) ) ;
47- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 1 , 2 ] ) ) ;
48- t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 'string1' , 'string2' ] ) ) ;
49+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ ] ) ) ;
50+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 0 ] ) ) ;
51+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 1 ] ) ) ;
52+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 'string' ] ) ) ;
53+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ true ] ) ) ;
54+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ false ] ) ) ;
55+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ null ] ) ) ;
56+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ undefined ] ) ) ;
57+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 1 , 2 ] ) ) ;
58+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ 'string1' , 'string2' ] ) ) ;
59+ t . true ( areArgumentArraysEqual ( [ Arg . all ( ) ] , [ parent , root ] ) ) ;
4960} )
5061
5162test ( 'areArgumentArraysEqual should return valid result using Arg.any()' , t => {
@@ -60,6 +71,8 @@ test('areArgumentArraysEqual should return valid result using Arg.any()', t => {
6071 t . true ( areArgumentArraysEqual ( [ Arg . any ( ) ] , [ testArray ] ) ) ;
6172 t . true ( areArgumentArraysEqual ( [ Arg . any ( ) ] , [ testFunc ] ) ) ;
6273 t . true ( areArgumentArraysEqual ( [ Arg . any ( ) ] , [ ] ) ) ;
74+ t . true ( areArgumentArraysEqual ( [ Arg . any ( ) ] , [ parent ] ) ) ;
75+ t . true ( areArgumentArraysEqual ( [ Arg . any ( ) ] , [ root ] ) ) ;
6376
6477 t . true ( areArgumentArraysEqual ( [ Arg . any ( 'string' ) ] , [ 'foo' ] ) ) ;
6578 t . true ( areArgumentArraysEqual ( [ Arg . any ( 'number' ) ] , [ 1 ] ) ) ;
@@ -74,6 +87,8 @@ test('areArgumentArraysEqual should return valid result using Arg.any()', t => {
7487 t . false ( areArgumentArraysEqual ( [ Arg . any ( 'object' ) ] , [ 'foo' ] ) ) ;
7588 t . false ( areArgumentArraysEqual ( [ Arg . any ( 'array' ) ] , [ 'bar' ] ) ) ;
7689 t . false ( areArgumentArraysEqual ( [ Arg . any ( 'function' ) ] , [ 'foo' ] ) ) ;
90+ t . true ( areArgumentArraysEqual ( [ Arg . any ( 'object' ) ] , [ parent ] ) ) ;
91+ t . true ( areArgumentArraysEqual ( [ Arg . any ( 'object' ) ] , [ root ] ) ) ;
7792} )
7893
7994test ( 'areArgumentArraysEqual should return valid result using Arg.is()' , t => {
0 commit comments