Skip to content

Commit

Permalink
fixup! fixup! Beauty tests
Browse files Browse the repository at this point in the history
  • Loading branch information
skad0 committed Feb 22, 2017
1 parent d39421a commit bc8a726
Showing 1 changed file with 95 additions and 99 deletions.
194 changes: 95 additions & 99 deletions test/format/v1.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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' }),
Expand All @@ -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'] }]
Expand All @@ -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' }),
Expand All @@ -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' }),
Expand All @@ -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: [{
Expand All @@ -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' }]
Expand All @@ -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: [{
Expand All @@ -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' }),
Expand All @@ -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',
Expand All @@ -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',
Expand Down

0 comments on commit bc8a726

Please sign in to comment.