blob: efb4006c2c6dd5bb9617ff960cb9270f74ba2e06 [file] [log] [blame]
import { readFileSync } from 'fs';
const indexPathFlagIdx = process.argv.findIndex(arg => arg === '--index');
const indexPath = process.argv[indexPathFlagIdx + 1];
const routeFlagIdx = process.argv.findIndex(arg => arg === '--route');
const route = process.argv[routeFlagIdx + 1];
const expectedElementsFlagIdx = process.argv.findIndex(arg => arg === '--expected');
const elements = process.argv.slice(expectedElementsFlagIdx + 1);
const index = readFileSync(indexPath.substring(indexPath.indexOf('/') + 1), { encoding: 'utf8' });
// check the index has the route stamped as a comment at the start
if (!index.trim().startsWith(`<!-- route: ${route} -->`)) {
console.error(`Expected index ${indexPath} to start with '<!-- route: ${route} -->', but this was not found`);
process.exit(1);
}
if (!elements) {
// no elements to check for, and no errors above, all is good
process.exit(0);
}
// check index contains the expected elements
elements
.forEach(element => {
const position = index.indexOf(`<${element}`);
if (position === -1) {
console.error(`Expected index to contain element ${element}, but this was not found`);
process.exit(1);
}
});