bindonetomany.js 935 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /**
  2. * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import Model from '../../src/model';
  6. import bindOneToMany from './../../src/bindings/bindonetomany';
  7. describe( 'bindOneToMany()', () => {
  8. it( 'binds observable property to collection property using callback', () => {
  9. const model = new Model();
  10. const observables = [
  11. new Model( { property: false } ),
  12. new Model( { property: false } ),
  13. new Model( { property: false } )
  14. ];
  15. bindOneToMany( model, 'property', observables, 'property',
  16. ( ...areEnabled ) => areEnabled.some( property => property )
  17. );
  18. expect( model.property ).to.be.false;
  19. observables[ 0 ].property = true;
  20. expect( model.property ).to.be.true;
  21. observables[ 0 ].property = false;
  22. expect( model.property ).to.be.false;
  23. observables[ 1 ].property = true;
  24. expect( model.property ).to.be.true;
  25. } );
  26. } );