attributes-kit
Version:
React component for MSON rendering
235 lines (217 loc) • 5.72 kB
JavaScript
import assert from 'assert';
import { preprocessSamples } from '../SamplesPreprocessor';
describe('Samples Preprocessor', () => {
context('Process a sample element', () => {
let processedRefractElement;
before(() => {
const refractElement = {
element: 'string',
attributes: {
samples: [
'foo',
'bar',
],
},
content: 'baz',
};
processedRefractElement = preprocessSamples(refractElement);
});
it('First sample element has been processed', () => {
assert.deepEqual(
processedRefractElement.attributes.samples[0],
{
element: 'string',
content: 'foo',
}
);
});
it('Second sample element has been processed', () => {
assert.deepEqual(
processedRefractElement.attributes.samples[1],
{
element: 'string',
content: 'bar',
}
);
});
});
context('Process a nested sample element', () => {
let processedRefractElement;
before(() => {
const refractElement = {
element: 'object',
content: [
{
element: 'member',
content: {
key: {
element: 'string',
content: 'foo',
},
value: {
element: 'object',
content: [
{
element: 'member',
content: {
key: {
element: 'string',
content: 'bar',
},
value: {
element: 'string',
attributes: {
samples: [
'bag',
],
},
content: 'baz',
},
},
},
],
},
},
},
],
};
processedRefractElement = preprocessSamples(refractElement);
});
it('First sample element has been processed', () => {
assert.deepEqual(
(
processedRefractElement
.content[0].content.value.content[0].content.value.attributes.samples
),
[
{
element: 'string',
content: 'bag',
},
]
);
});
});
context('Process a sample of an object element', () => {
let processedRefractElement;
before(() => {
const refractElement = {
element: 'object',
attributes: {
samples: [
[
{
element: 'member',
content: {
key: {
element: 'string',
content: 'foo',
},
value: {
element: 'string',
content: 'bar',
},
},
},
],
],
},
content: [],
};
processedRefractElement = preprocessSamples(refractElement);
});
it('First sample element has been processed', () => {
assert.deepEqual(
processedRefractElement.attributes.samples[0],
{
element: 'object',
content: [
{
element: 'member',
content: {
key: {
element: 'string',
content: 'foo',
},
value: {
element: 'string',
content: 'bar',
},
},
},
],
},
);
});
});
context('Process a sample of a nested object element', () => {
let processedRefractElement;
before(() => {
const refractElement = {
element: 'object',
content: [
{
element: 'member',
content: {
key: {
element: 'string',
content: 'foo',
},
value: {
element: 'object',
attributes: {
samples: [
[
{
element: 'member',
content: {
key: {
element: 'string',
content: 'bar',
},
value: {
element: 'string',
content: 'baz',
},
},
},
],
],
},
content: [],
},
},
},
],
};
processedRefractElement = preprocessSamples(refractElement);
});
it('First sample element has been processed', () => {
assert.deepEqual(
processedRefractElement.content[0].content.value.attributes,
{
samples: [
{
element: 'object',
content: [
{
element: 'member',
content: {
key: {
element: 'string',
content: 'bar',
},
value: {
element: 'string',
content: 'baz',
},
},
},
],
},
],
},
);
});
});
});