1+ 'use strict' ;
2+
3+ var diff = require ( '../src/diff' ) ;
4+ var Immutable = require ( 'Immutable' ) ;
5+ var JSC = require ( 'jscheck' ) ;
6+ var assert = require ( 'assert' ) ;
7+
8+ describe ( 'Primitive types diff' , function ( ) {
9+ var failure = null ;
10+
11+ before ( function ( ) {
12+ JSC . on_report ( function ( report ) {
13+ console . log ( report ) ;
14+ } ) ;
15+
16+ JSC . on_fail ( function ( jsc_failure ) {
17+ failure = jsc_failure ;
18+ } ) ;
19+ } ) ;
20+
21+ afterEach ( function ( ) {
22+ if ( failure ) {
23+ console . error ( failure ) ;
24+ throw failure ;
25+ }
26+ } ) ;
27+
28+ it ( 'check properties' , function ( ) {
29+ JSC . test (
30+ 'returns [] when equal' ,
31+ function ( veredict , int1 ) {
32+ var result = diff ( int1 , int1 ) ;
33+ var expected = Immutable . fromJS ( [ ] ) ;
34+
35+ return veredict ( Immutable . is ( result , expected ) ) ;
36+ } ,
37+ [
38+ JSC . integer ( )
39+ ]
40+ ) ;
41+
42+ JSC . test (
43+ 'replaces numbers' ,
44+ function ( veredict , int1 , int2 ) {
45+ var result = diff ( int1 , int2 ) ;
46+ var expected = Immutable . fromJS ( [
47+ { op : 'replace' , path : '/' , value : int2 }
48+ ] ) ;
49+
50+ return veredict ( Immutable . is ( result , expected ) ) ;
51+ } ,
52+ [
53+ JSC . integer ( ) ,
54+ JSC . integer ( )
55+ ]
56+ ) ;
57+
58+ JSC . test (
59+ 'replaces strings' ,
60+ function ( veredict , str1 , str2 ) {
61+ var result = diff ( str1 , str2 ) ;
62+ var expected = Immutable . fromJS ( [
63+ { op : 'replace' , path : '/' , value : str2 }
64+ ] ) ;
65+
66+ return veredict ( Immutable . is ( result , expected ) ) ;
67+ } ,
68+ [
69+ JSC . string ( ) ,
70+ JSC . string ( )
71+ ]
72+ ) ;
73+
74+ JSC . test (
75+ 'replaces arrays' ,
76+ function ( veredict , array1 , array2 ) {
77+ var result = diff ( array1 , array2 ) ;
78+ var expected = Immutable . fromJS ( [
79+ { op : 'replace' , path : '/' , value : array2 }
80+ ] ) ;
81+
82+ return veredict ( Immutable . is ( result , expected ) ) ;
83+ } ,
84+ [
85+ JSC . array ( 5 ) ,
86+ JSC . array ( 5 )
87+ ]
88+ ) ;
89+
90+ JSC . test (
91+ 'replaces objects' ,
92+ function ( veredict , object1 , object2 ) {
93+ var result = diff ( object1 , object2 ) ;
94+ var expected = Immutable . fromJS ( [
95+ { op : 'replace' , path : '/' , value : object2 }
96+ ] ) ;
97+
98+ return veredict ( Immutable . is ( result , expected ) ) ;
99+ } ,
100+ [
101+ JSC . object ( 5 ) ,
102+ JSC . object ( 5 )
103+ ]
104+ ) ;
105+ } ) ;
106+ } ) ;
0 commit comments