From bc8a7266ddaff624335c4d2f8298c5f49419e33c Mon Sep 17 00:00:00 2001 From: Anton Krichevskii Date: Wed, 22 Feb 2017 13:29:05 +0300 Subject: [PATCH] fixup! fixup! Beauty tests --- test/format/v1.test.js | 194 ++++++++++++++++++++--------------------- 1 file changed, 95 insertions(+), 99 deletions(-) diff --git a/test/format/v1.test.js b/test/format/v1.test.js index 20f8b8b..724b628 100644 --- a/test/format/v1.test.js +++ b/test/format/v1.test.js @@ -5,16 +5,20 @@ const BemCell = require('@bem/cell'); const format = require('../../lib/format'); +function cellify(entities) { + return entities.map(BemCell.create); +} + test('must return empty decl', t => { t.deepEqual(format([], { format: 'v1' }), []); }); test('must group elems of one block', t => { - const input = [ - BemCell.create({ block: 'block1' }), - BemCell.create({ block: 'block1', elem: 'elem1' }), - BemCell.create({ block: 'block1', elem: 'elem2' }) - ]; + const input = cellify([ + { block: 'block1' }, + { block: 'block1', elem: 'elem1' }, + { block: 'block1', elem: 'elem2' } + ]); const output = [{ name: 'block1', elems: [{ name: 'elem1' }, { name: 'elem2' }] }]; t.deepEqual( @@ -24,20 +28,18 @@ test('must group elems of one block', t => { }); test('must group mods of one block', t => { - const input = [ - BemCell.create({ block: 'block1' }), - BemCell.create({ block: 'block1', modName: 'mod1', modVal: 'val1' }), - BemCell.create({ block: 'block1', modName: 'mod2', modVal: 'val2' }) - ]; - const output = [ - { - name: 'block1', - mods: [ - { name: 'mod1', vals: ['val1'] }, - { name: 'mod2', vals: ['val2'] } - ] - } - ]; + const input = cellify([ + { block: 'block1' }, + { block: 'block1', modName: 'mod1', modVal: 'val1' }, + { block: 'block1', modName: 'mod2', modVal: 'val2' } + ]); + const output = [{ + name: 'block1', + mods: [ + { name: 'mod1', vals: ['val1'] }, + { name: 'mod2', vals: ['val2'] } + ] + }]; t.deepEqual( format(input, { format: 'v1' }), @@ -46,11 +48,11 @@ test('must group mods of one block', t => { }); test('must group vals of mods block', t => { - const input = [ - BemCell.create({ block: 'block1' }), - BemCell.create({ block: 'block1', modName: 'mod1', modVal: true }), - BemCell.create({ block: 'block1', modName: 'mod1', modVal: 'val1' }) - ]; + const input = cellify([ + { block: 'block1' }, + { block: 'block1', modName: 'mod1', modVal: true }, + { block: 'block1', modName: 'mod1', modVal: 'val1' } + ]); const output = [{ name: 'block1', mods: [{ name: 'mod1', vals: [true, 'val1'] }] @@ -63,20 +65,18 @@ test('must group vals of mods block', t => { }); test('must group elem mods of block', t => { - const input = [ - BemCell.create({ block: 'block1' }), - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }), - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod2', modVal: 'val2' }) - ]; - const output = [ - { - name: 'block1', - elems: [{ - name: 'elem1', - mods: [{ name: 'mod1', vals: ['val1'] }, { name: 'mod2', vals: ['val2'] }] - }] - } - ]; + const input = cellify([ + { block: 'block1' }, + { block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }, + { block: 'block1', elem: 'elem1', modName: 'mod2', modVal: 'val2' } + ]); + const output = [{ + name: 'block1', + elems: [{ + name: 'elem1', + mods: [{ name: 'mod1', vals: ['val1'] }, { name: 'mod2', vals: ['val2'] }] + }] + }]; t.deepEqual( format(input, { format: 'v1' }), @@ -85,20 +85,18 @@ test('must group elem mods of block', t => { }); test('must group vals of elem mods', t => { - const input = [ - BemCell.create({ block: 'block1' }), - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }), - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val2' }) - ]; - const output = [ - { - name: 'block1', - elems: [{ - name: 'elem1', - mods: [{ name: 'mod1', vals: ['val1', 'val2'] }] - }] - } - ]; + const input = cellify([ + { block: 'block1' }, + { block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }, + { block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val2' } + ]); + const output = [{ + name: 'block1', + elems: [{ + name: 'elem1', + mods: [{ name: 'mod1', vals: ['val1', 'val2'] }] + }] + }]; t.deepEqual( format(input, { format: 'v1' }), @@ -108,7 +106,7 @@ test('must group vals of elem mods', t => { test('should create full entity with mods', t => { t.deepEqual( - format(BemCell.create({ entity: { block: 'block1', modName: 'mod1', modVal: 'val1' } }), { format: 'v1' }), + format(BemCell.create({ block: 'block1', modName: 'mod1', modVal: 'val1' }), { format: 'v1' }), [{ name: 'block1', mods: [{ @@ -121,20 +119,20 @@ test('should create full entity with mods', t => { test('should not group different blocks', t => { t.deepEqual( - format([ - BemCell.create({ block: 'block1' }), - BemCell.create({ block: 'block2' }), - BemCell.create({ block: 'block3' }) - ], { format: 'v1' }), + format(cellify([ + { block: 'block1' }, + { block: 'block2' }, + { block: 'block3' } + ]), { format: 'v1' }), [{ name: 'block1' }, { name: 'block2' }, { name: 'block3' }] ); }); test('should not group different blocks with equal elems', t => { - const input = [ - BemCell.create({ entity: { block: 'block1', elem: 'elem' } }), - BemCell.create({ entity: { block: 'block2', elem: 'elem' } }) - ]; + const input = cellify([ + { block: 'block1', elem: 'elem' }, + { block: 'block2', elem: 'elem' } + ]); const output = [{ name: 'block1', elems: [{ name: 'elem' }] @@ -150,10 +148,10 @@ test('should not group different blocks with equal elems', t => { }); test('should not group equal vals of different mods', t => { - const input = [ - BemCell.create({ block: 'block1', elem: 'elem', modName: 'mod1', modVal: 'val1' }), - BemCell.create({ block: 'block1', elem: 'elem', modName: 'mod2', modVal: 'val1' }) - ]; + const input = cellify([ + { block: 'block1', elem: 'elem', modName: 'mod1', modVal: 'val1' }, + { block: 'block1', elem: 'elem', modName: 'mod2', modVal: 'val1' } + ]); const output = [{ name: 'block1', elems: [{ @@ -175,28 +173,26 @@ test('should not group equal vals of different mods', t => { }); test('should not group equal mods of different elems', t => { - const input = [ - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }), - BemCell.create({ block: 'block1', elem: 'elem2', modName: 'mod1', modVal: 'val1' }) - ]; - const output = [ - { - name: 'block1', - elems: [{ - name: 'elem1', - mods: [{ - name: 'mod1', - vals: ['val1'] - }] - }, { - name: 'elem2', - mods: [{ - name: 'mod1', - vals: ['val1'] - }] + const input = cellify([ + { block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }, + { block: 'block1', elem: 'elem2', modName: 'mod1', modVal: 'val1' } + ]); + const output = [{ + name: 'block1', + elems: [{ + name: 'elem1', + mods: [{ + name: 'mod1', + vals: ['val1'] }] - } - ]; + }, { + name: 'elem2', + mods: [{ + name: 'mod1', + vals: ['val1'] + }] + }] + }]; t.deepEqual( format(input, { format: 'v1' }), @@ -205,11 +201,11 @@ test('should not group equal mods of different elems', t => { }); test('should not break order of different entities', t => { - const input = [ - BemCell.create({ block: 'block1', elem: 'elem1' }), - BemCell.create({ block: 'block2' }), - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }) - ]; + const input = cellify([ + { block: 'block1', elem: 'elem1' }, + { block: 'block2' }, + { block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' } + ]); const output = [ { name: 'block1', @@ -235,13 +231,13 @@ test('should not break order of different entities', t => { }); test('should not break order of different entities with complex entities', t => { - const input = [ - BemCell.create({ block: 'block1', elem: 'elem1' }), - BemCell.create({ block: 'block2' }), - BemCell.create({ block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }), - BemCell.create({ block: 'block2', modName: 'mod2', modVal: 'val2' }), - BemCell.create({ block: 'block2', elem: 'elem2' }) - ]; + const input = cellify([ + { block: 'block1', elem: 'elem1' }, + { block: 'block2' }, + { block: 'block1', elem: 'elem1', modName: 'mod1', modVal: 'val1' }, + { block: 'block2', modName: 'mod2', modVal: 'val2' }, + { block: 'block2', elem: 'elem2' } + ]); const output = [ { name: 'block1',