@@ -177,3 +177,37 @@ test('allows passing other variables at .create time', (assert) => {
177177 assert . equal ( proxy . get ( 'container' ) , fakeContainer , 'Proxy didn\'t allow defining container property at create time' ) ;
178178 assert . equal ( proxy . get ( 'foo' ) , 'foo' , 'Proxy didn\'t allow setting an arbitrary value at create time' ) ;
179179} ) ;
180+
181+ test ( 'that .hasChanged() works' , ( assert ) => {
182+ const BufferedProxy = Ember . ObjectProxy . extend ( Mixin ) ;
183+ const content = { } ;
184+
185+ const proxy = BufferedProxy . create ( { content } ) ;
186+
187+ set ( proxy , 'foo' , 1 ) ;
188+
189+ assert . equal ( proxy . hasChanged ( 'foo' ) , true ) ;
190+ assert . equal ( proxy . hasChanged ( 'bar' ) , false ) ;
191+
192+ set ( proxy , 'bar' , 1 ) ;
193+
194+ assert . equal ( proxy . hasChanged ( 'foo' ) , true ) ;
195+ assert . equal ( proxy . hasChanged ( 'bar' ) , true ) ;
196+
197+ proxy . applyBufferedChanges ( [ 'bar' ] ) ;
198+
199+ set ( proxy , 'foobar' , false ) ;
200+
201+ assert . equal ( proxy . hasChanged ( 'foo' ) , true ) ;
202+ assert . equal ( proxy . hasChanged ( 'bar' ) , false ) ;
203+ assert . equal ( proxy . hasChanged ( 'foobar' ) , true ) ;
204+
205+ proxy . applyBufferedChanges ( ) ;
206+
207+ assert . equal ( proxy . hasChanged ( 'foo' ) , false ) ;
208+ assert . equal ( proxy . hasChanged ( 'bar' ) , false ) ;
209+ assert . equal ( proxy . hasChanged ( 'foobar' ) , false ) ;
210+
211+ assert . equal ( proxy . hasChanged ( ) , false , 'Not passing a key returns false' ) ;
212+ assert . equal ( proxy . hasChanged ( 'baz' ) , false , 'If the key does not exist on the proxy then return false' ) ;
213+ } ) ;
0 commit comments