X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/1fee1a1755e0b9ce88e1f9df5016f44b9982f368..1f2f8117ae10eaebde925989e1b3710c8cc47323:/modules/documentCanvas/tests/classAttributes.test.js diff --git a/modules/documentCanvas/tests/classAttributes.test.js b/modules/documentCanvas/tests/classAttributes.test.js new file mode 100644 index 0000000..4f2157c --- /dev/null +++ b/modules/documentCanvas/tests/classAttributes.test.js @@ -0,0 +1,58 @@ +define([ +'libs/chai', +'modules/documentCanvas/classAttributes' +], function(chai, classAttributes) { + +var stubDict = { + 'klass': { + 'prop': 'string' + }, + 'klass-sub1': { + 'prop1': 'string' + }, + 'klass-sub1-sub2': { + 'prop2': 'string' + } +}; + +var assert = chai.assert; + +suite('Class attributes', function() { + test('class has own attribute', function() { + assert.ok(classAttributes.hasMetaAttr('klass-sub1-sub2', 'prop2', stubDict)); + }); + + test('class has attributes from parent classes', function() { + assert.ok(classAttributes.hasMetaAttr('klass-sub1-sub2', 'prop', stubDict)); + assert.ok(classAttributes.hasMetaAttr('klass-sub1-sub2', 'prop1', stubDict)); + }); + + test('list of class meta attributes', function() { + var attrList = classAttributes.getMetaAttrsList('klass-sub1-sub2', stubDict); + + assert.deepEqual(attrList.own, [{name: 'prop2', type: 'string'}]); + assert.deepEqual(attrList.inheritedFrom['klass-sub1'], [{name: 'prop1', type: 'string'}]); + assert.deepEqual(attrList.inheritedFrom.klass, [{name: 'prop', type: 'string'}]); + assert.deepEqual(attrList.all.sort(), [ + {name: 'prop', type: 'string'}, + {name: 'prop1', type: 'string'}, + {name: 'prop2', type: 'string'} + ].sort(), 'all values'); + }); + + test('class without meta attrs', function() { + var attrList = classAttributes.getMetaAttrsList('some-class', {}); + assert.deepEqual(attrList.own, [], 'empty own list'); + assert.deepEqual(attrList.inheritedFrom, {}, 'empty inherited dict'); + assert.deepEqual(attrList.all, [], 'empty all list'); + }); + + test('empty class', function() { + var attrList = classAttributes.getMetaAttrsList('', {}); + assert.deepEqual(attrList.own, [], 'empty own list'); + assert.deepEqual(attrList.inheritedFrom, {}, 'empty inherited dict'); + assert.deepEqual(attrList.all, [], 'empty all list'); + }); +}); + +}); \ No newline at end of file