@@ -31,7 +31,7 @@ describe('angular', function() {
31
31
expect ( copy ( date ) === date ) . toBeFalsy ( ) ;
32
32
} ) ;
33
33
34
- it ( "should copy array" , function ( ) {
34
+ it ( "should deeply copy an array into an existing array" , function ( ) {
35
35
var src = [ 1 , { name :"value" } ] ;
36
36
var dst = [ { key :"v" } ] ;
37
37
expect ( copy ( src , dst ) ) . toBe ( dst ) ;
@@ -40,14 +40,23 @@ describe('angular', function() {
40
40
expect ( dst [ 1 ] ) . not . toBe ( src [ 1 ] ) ;
41
41
} ) ;
42
42
43
+ it ( "should deeply copy an array into a new array" , function ( ) {
44
+ var src = [ 1 , { name :"value" } ] ;
45
+ var dst = copy ( src ) ;
46
+ expect ( src ) . toEqual ( [ 1 , { name :"value" } ] ) ;
47
+ expect ( dst ) . toEqual ( src ) ;
48
+ expect ( dst ) . not . toBe ( src ) ;
49
+ expect ( dst [ 1 ] ) . not . toBe ( src [ 1 ] ) ;
50
+ } ) ;
51
+
43
52
it ( 'should copy empty array' , function ( ) {
44
53
var src = [ ] ;
45
54
var dst = [ { key : "v" } ] ;
46
55
expect ( copy ( src , dst ) ) . toEqual ( [ ] ) ;
47
56
expect ( dst ) . toEqual ( [ ] ) ;
48
57
} ) ;
49
58
50
- it ( "should copy object" , function ( ) {
59
+ it ( "should deeply copy an object into an existing object" , function ( ) {
51
60
var src = { a :{ name :"value" } } ;
52
61
var dst = { b :{ key :"v" } } ;
53
62
expect ( copy ( src , dst ) ) . toBe ( dst ) ;
@@ -56,6 +65,16 @@ describe('angular', function() {
56
65
expect ( dst . a ) . not . toBe ( src . a ) ;
57
66
} ) ;
58
67
68
+ it ( "should deeply copy an object into an existing object" , function ( ) {
69
+ var src = { a :{ name :"value" } } ;
70
+ var dst = copy ( src , dst ) ;
71
+ expect ( src ) . toEqual ( { a :{ name :"value" } } ) ;
72
+ expect ( dst ) . toEqual ( src ) ;
73
+ expect ( dst ) . not . toBe ( src ) ;
74
+ expect ( dst . a ) . toEqual ( src . a ) ;
75
+ expect ( dst . a ) . not . toBe ( src . a ) ;
76
+ } ) ;
77
+
59
78
it ( "should copy primitives" , function ( ) {
60
79
expect ( copy ( null ) ) . toEqual ( null ) ;
61
80
expect ( copy ( '' ) ) . toBe ( '' ) ;
0 commit comments