babel-plugin-gwt
Version:
Data Driven Testing babel plugin inspired by Groovy's Spock framework
56 lines (51 loc) • 1.69 kB
JavaScript
const { transform } = require('babel-core');
const { getRows } = require('./');
const getExpressionStatement = programAst => programAst.program.body[0];
describe('Where', () => {
describe('.getRows', () => {
it('returns empty array when given labels do not contain a where label', () => {
const code = 'random: "hello world"';
const { ast } = transform(code);
const node = getExpressionStatement(ast);
expect(getRows([node])).toEqual([]);
});
it('returns array of where table titles from left most node', () => {
const code = `
where: {
a | b || expected
}
`;
const { ast } = transform(code);
const node = getExpressionStatement(ast);
const actual = getRows([node]);
const [a, b, expected] = actual[0];
expect(a.name).toBe('a');
expect(b.name).toBe('b');
expect(expected.name).toBe('expected');
});
it('returns array of where table titles and entries', () => {
const code = `
where: {
a | b || expected
1 | 2 || 3
4 | 5 || 9
}
`;
const { ast } = transform(code);
const node = getExpressionStatement(ast);
const actual = getRows([node]);
const [a, b, expected] = actual[0];
expect(a.name).toBe('a');
expect(b.name).toBe('b');
expect(expected.name).toBe('expected');
const [one, two, three] = actual[1];
expect(one.value).toBe(1);
expect(two.value).toBe(2);
expect(three.value).toBe(3);
const [four, five, nine] = actual[2];
expect(four.value).toBe(4);
expect(five.value).toBe(5);
expect(nine.value).toBe(9);
});
});
});