exadel-inc/esl

View on GitHub
packages/snapshot-tests/src/transformer/gherkin.js

Summary

Maintainability
A
0 mins
Test Coverage
import fs from 'fs';
 
import {cucumber, GenericTransformer} from 'stucumber';
 
function process(source, filename) {
const transformer = new GenericTransformer({
featureFn: 'describe',
scenarioFn: 'test',
beforeAllFn: 'beforeAll',
afterAllFn: 'afterAll'
});
 
try {
return {
code: transformer.transform(filename, source)
};
} catch (e) {
if (e.name === 'SyntaxError' && e.location) {
throw new Error(`${filename} (${e.location.start.line}, ${e.location.start.column}): ${e.message}`);
} else {
throw new Error(`${e.name}: ${e.message}`);
}
}
}
 
function getCacheKey(source, filename) {
const stat = fs.statSync(filename);
return `${filename}-${stat.mtimeMs}`;
}
 
export {cucumber, process, getCacheKey};
export default {cucumber, process, getCacheKey};