Browse Source

Other: Extract `enableModelIfOneIsEnabled()` to own file.

Maciej Gołaszewski 7 years ago
parent
commit
948b62adab

+ 19 - 0
packages/ckeditor5-ui/src/dropdown/helpers/enablemodelifoneisenabled.js

@@ -0,0 +1,19 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import { getBindingTargets } from '../utils';
+
+/**
+ * @module ui/dropdown/helpers/enablemodelifoneisenabled
+ */
+
+export default function enableModelIfOneIsEnabled( model, observables ) {
+	model.bind( 'isEnabled' ).to(
+		// Bind to #isEnabled of each observable...
+		...getBindingTargets( observables, 'isEnabled' ),
+		// ...and set it true if any observable #isEnabled is true.
+		( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )
+	);
+}

+ 0 - 9
packages/ckeditor5-ui/src/dropdown/utils.js

@@ -14,15 +14,6 @@ import ListItemView from '../list/listitemview';
 // TODO: This should be per-component import AFAIK. It will result in smaller builds that don't use dropdown with toolbar.
 import '../../theme/components/dropdown/toolbardropdown.css';
 
-export function enableModelIfOneIsEnabled( model, observables ) {
-	model.bind( 'isEnabled' ).to(
-		// Bind to #isEnabled of each observable...
-		...getBindingTargets( observables, 'isEnabled' ),
-		// ...and set it true if any observable #isEnabled is true.
-		( ...areEnabled ) => areEnabled.some( isEnabled => isEnabled )
-	);
-}
-
 /**
  * Creates an instance of {@link module:ui/dropdown/list/listdropdownview~ListDropdownView} class using
  * a provided {@link module:ui/dropdown/list/listdropdownmodel~ListDropdownModel}.

+ 34 - 0
packages/ckeditor5-ui/tests/dropdown/helpers/enablemodelifoneisenabled.js

@@ -0,0 +1,34 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import Model from '../../../src/model';
+
+import enableModelIfOneIsEnabled from '../../../src/dropdown/helpers/enablemodelifoneisenabled';
+
+describe( 'enableModelIfOneIsEnabled()', () => {
+	it( 'Bind to #isEnabled of each observable  and set it true if any observable #isEnabled is true', () => {
+		const model = new Model();
+		const observables = [
+			new Model( { isEnabled: false } ),
+			new Model( { isEnabled: false } ),
+			new Model( { isEnabled: false } )
+		];
+		enableModelIfOneIsEnabled( model, observables );
+
+		expect( model.isEnabled ).to.be.false;
+
+		observables[ 0 ].isEnabled = true;
+
+		expect( model.isEnabled ).to.be.true;
+
+		observables[ 0 ].isEnabled = false;
+
+		expect( model.isEnabled ).to.be.false;
+
+		observables[ 1 ].isEnabled = true;
+
+		expect( model.isEnabled ).to.be.true;
+	} );
+} );

+ 1 - 27
packages/ckeditor5-ui/tests/dropdown/utils.js

@@ -18,8 +18,7 @@ import createDropdownView from '../../src/dropdown/helpers/createdropdownview';
 
 import {
 	addListViewToDropdown,
-	addToolbarToDropdown,
-	enableModelIfOneIsEnabled
+	addToolbarToDropdown
 } from '../../src/dropdown/utils';
 
 describe( 'utils', () => {
@@ -38,31 +37,6 @@ describe( 'utils', () => {
 		}
 	} );
 
-	describe( 'enableModelIfOneIsEnabled()', () => {
-		it( 'Bind to #isEnabled of each observable  and set it true if any observable #isEnabled is true', () => {
-			const observables = [
-				new Model( { isEnabled: false } ),
-				new Model( { isEnabled: false } ),
-				new Model( { isEnabled: false } )
-			];
-			enableModelIfOneIsEnabled( model, observables );
-
-			expect( model.isEnabled ).to.be.false;
-
-			observables[ 0 ].isEnabled = true;
-
-			expect( model.isEnabled ).to.be.true;
-
-			observables[ 0 ].isEnabled = false;
-
-			expect( model.isEnabled ).to.be.false;
-
-			observables[ 1 ].isEnabled = true;
-
-			expect( model.isEnabled ).to.be.true;
-		} );
-	} );
-
 	describe( 'addListViewToDropdown()', () => {
 		let items;