control-freak-ide/misc/pocs/react-blessed/test/suites/solveClass.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

148 lines
2.5 KiB
JavaScript

import assert from 'assert';
import solveClass from '../../src/shared/solveClass';
describe('solveClass', function() {
it('should merge a single class into props.', function() {
assert.deepEqual(
solveClass({
class: {
border: {
type: 'line'
},
style: {
border: {
fg: 'red'
}
}
},
border: {
type: 'dashed'
},
style: {
bg: 'green'
}
}),
{
border: {
type: 'dashed'
},
style: {
border: {
fg: 'red'
},
bg: 'green'
}
}
);
assert.deepEqual(
solveClass({
class: {
border: {
type: 'line'
},
style: {
border: {
fg: 'red'
}
}
},
style: {
bg: 'green'
}
}),
{
border: {
type: 'line'
},
style: {
border: {
fg: 'red'
},
bg: 'green'
}
}
);
});
it('should be possible to merge several classes into props.', function() {
assert.deepEqual(
solveClass({
class: [
{
style: {
border: {
fg: 'red'
}
}
},
{
border: {
type: 'line'
}
}
],
border: {
type: 'dashed'
},
style: {
bg: 'green'
}
}),
{
border: {
type: 'dashed'
},
style: {
border: {
fg: 'red'
},
bg: 'green'
}
}
);
});
it('the given class array should be compacted.', function() {
assert.deepEqual(
solveClass({
class: [
{
style: {
border: {
fg: 'red'
}
}
},
{
border: {
type: 'line'
}
},
false && {
fg: 'yellow'
}
],
border: {
type: 'dashed'
},
style: {
bg: 'green'
}
}),
{
border: {
type: 'dashed'
},
style: {
border: {
fg: 'red'
},
bg: 'green'
}
}
);
});
});