|
|
@@ -0,0 +1,94 @@
|
|
|
+/**
|
|
|
+ * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
|
|
|
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
|
+ */
|
|
|
+
|
|
|
+import AutomaticDecorators from '../../src/utils/automaticdecorators';
|
|
|
+
|
|
|
+describe( 'Automatic Decorators', () => {
|
|
|
+ let automaticDecorators;
|
|
|
+ beforeEach( () => {
|
|
|
+ automaticDecorators = new AutomaticDecorators();
|
|
|
+ } );
|
|
|
+
|
|
|
+ describe( 'constructor()', () => {
|
|
|
+ it( 'initialise with empty Set', () => {
|
|
|
+ expect( automaticDecorators._definitions ).to.be.instanceOf( Set );
|
|
|
+ } );
|
|
|
+ } );
|
|
|
+
|
|
|
+ describe( 'add()', () => {
|
|
|
+ const tests = [
|
|
|
+ {
|
|
|
+ mode: 'automatic',
|
|
|
+ callback: () => {},
|
|
|
+ attributes: {
|
|
|
+ foo: 'bar'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ mode: 'automatic',
|
|
|
+ callback: () => {},
|
|
|
+ attributes: {
|
|
|
+ bar: 'baz'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ mode: 'automatic',
|
|
|
+ callback: () => {},
|
|
|
+ attributes: {
|
|
|
+ test1: 'one',
|
|
|
+ test2: 'two',
|
|
|
+ test3: 'three'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ it( 'can accept single object', () => {
|
|
|
+ expect( automaticDecorators._definitions.size ).to.equal( 0 );
|
|
|
+
|
|
|
+ automaticDecorators.add( tests[ 0 ] );
|
|
|
+ expect( automaticDecorators._definitions.size ).to.equal( 1 );
|
|
|
+
|
|
|
+ const firstValue = automaticDecorators._definitions.values().next().value;
|
|
|
+
|
|
|
+ expect( firstValue ).to.deep.include( {
|
|
|
+ mode: 'automatic',
|
|
|
+ attributes: {
|
|
|
+ foo: 'bar'
|
|
|
+ }
|
|
|
+ } );
|
|
|
+ expect( firstValue ).to.have.property( 'callback' );
|
|
|
+ expect( firstValue.callback ).to.be.a( 'function' );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'can accept array of objects', () => {
|
|
|
+ expect( automaticDecorators._definitions.size ).to.equal( 0 );
|
|
|
+
|
|
|
+ automaticDecorators.add( tests );
|
|
|
+
|
|
|
+ expect( automaticDecorators._definitions.size ).to.equal( 3 );
|
|
|
+
|
|
|
+ const setIterator = automaticDecorators._definitions.values();
|
|
|
+ setIterator.next();
|
|
|
+ setIterator.next();
|
|
|
+ const thirdValue = setIterator.next().value;
|
|
|
+
|
|
|
+ expect( thirdValue ).to.deep.include( {
|
|
|
+ mode: 'automatic',
|
|
|
+ attributes: {
|
|
|
+ test1: 'one',
|
|
|
+ test2: 'two',
|
|
|
+ test3: 'three'
|
|
|
+ }
|
|
|
+ } );
|
|
|
+ expect( thirdValue ).to.have.property( 'callback' );
|
|
|
+ expect( thirdValue.callback ).to.be.a( 'function' );
|
|
|
+ } );
|
|
|
+ } );
|
|
|
+
|
|
|
+ describe( 'getDispatcher()', () => {
|
|
|
+ it( 'should return a dispatcher function', () => {
|
|
|
+ expect( automaticDecorators.getDispatcher() ).to.be.a( 'function' );
|
|
|
+ } );
|
|
|
+ } );
|
|
|
+} );
|