@@ -79,3 +79,47 @@ test("The value of a Computeds function cannot be set", () => {
7979 expect ( ( ) => { computed . value = 10 ; } ) . toThrow ( ) ;
8080} ) ;
8181
82+ test ( "Non-deep computed is not affected by changes to the observables properties" , ( ) => {
83+ const observable = Observable ( { a : 5 } , true ) ;
84+ const computed = Computed ( ( ) => observable . value , false ) ;
85+ const mockedSubscriber = jest . fn ( ) ;
86+ computed . subscribe ( mockedSubscriber ) ;
87+ expect ( computed . value . a ) . toBe ( 5 ) ;
88+ computed . value . a = 10 ;
89+ expect ( computed . value . a ) . toBe ( 10 ) ;
90+ expect ( mockedSubscriber ) . toHaveBeenCalledTimes ( 1 ) ;
91+ } ) ;
92+
93+ test ( "Non-deep computed is not affected by changes to the observables properties" , ( ) => {
94+ const observable = Observable ( { a : 5 } , false ) ;
95+ const computed = Computed ( ( ) => observable . value , true ) ;
96+ const mockedSubscriber = jest . fn ( ) ;
97+ computed . subscribe ( mockedSubscriber ) ;
98+ expect ( computed . value . a ) . toBe ( 5 ) ;
99+ observable . value . a = 10 ;
100+ expect ( computed . value . a ) . toBe ( 10 ) ;
101+ expect ( mockedSubscriber ) . toHaveBeenCalledTimes ( 1 ) ;
102+ } ) ;
103+
104+ test ( "deep computed is affected by changes to the observables properties" , ( ) => {
105+ const observable = Observable ( { a : 5 } , false ) ;
106+ const computed = Computed ( ( ) => observable . value , true ) ;
107+ const mockedSubscriber = jest . fn ( ) ;
108+ computed . subscribe ( mockedSubscriber ) ;
109+ expect ( computed . value . a ) . toBe ( 5 ) ;
110+ computed . value . a = 10 ;
111+ expect ( computed . value . a ) . toBe ( 10 ) ;
112+ expect ( mockedSubscriber ) . toHaveBeenCalledTimes ( 2 ) ;
113+ } ) ;
114+
115+ test ( "deep computed is affected by changes to the observables properties" , ( ) => {
116+ const observable = Observable ( { a : 5 } , true ) ;
117+ const computed = Computed ( ( ) => observable . value , true ) ;
118+ const mockedSubscriber = jest . fn ( ) ;
119+ computed . subscribe ( mockedSubscriber ) ;
120+ expect ( computed . value . a ) . toBe ( 5 ) ;
121+ observable . value . a = 10 ;
122+ expect ( computed . value . a ) . toBe ( 10 ) ;
123+ expect ( mockedSubscriber ) . toHaveBeenCalledTimes ( 2 ) ;
124+ } ) ;
125+
0 commit comments