| const fs = require('fs'); |
| const twinkie = require('fried-twinkie'); |
| |
| fs.readdir('./polygerrit-ui/temp/behaviors/', (err, data) => { |
| if (err) { |
| console.log('error /polygerrit-ui/temp/behaviors/ directory'); |
| } |
| const behaviors = data; |
| const additionalSources = []; |
| const externMap = {}; |
| |
| for (const behavior of behaviors) { |
| if (!externMap[behavior]) { |
| additionalSources.push({ |
| path: `./polygerrit-ui/temp/behaviors/${behavior}`, |
| src: fs.readFileSync( |
| `./polygerrit-ui/temp/behaviors/${behavior}`, 'utf-8'), |
| }); |
| externMap[behavior] = true; |
| } |
| } |
| |
| let mappings = JSON.parse(fs.readFileSync( |
| `./polygerrit-ui/temp/map.json`, 'utf-8')); |
| |
| // The directory is passed as arg2 by the test target. |
| const directory = process.argv[2]; |
| if (directory) { |
| const mappingSpecificDirectory = {}; |
| |
| for (key of Object.keys(mappings)) { |
| if (directory === mappings[key].directory) { |
| mappingSpecificDirectory[key] = mappings[key]; |
| } |
| } |
| mappings = mappingSpecificDirectory; |
| } |
| |
| // If a particular file was passed by the user, don't test everything. |
| const file = process.argv[3]; |
| if (file) { |
| const mappingSpecificFile = {}; |
| for (key of Object.keys(mappings)) { |
| if (key.includes(file)) { |
| mappingSpecificFile[key] = mappings[key]; |
| } |
| } |
| mappings = mappingSpecificFile; |
| } |
| |
| /** |
| * Types in Gerrit. |
| * All types should be under `./polygerrit-ui/app/types` folder and end with `js`. |
| */ |
| fs.readdir('./polygerrit-ui/app/types/', (err, typeFiles) => { |
| for (const typeFile of typeFiles) { |
| if (!typeFile.endsWith('.js')) continue; |
| additionalSources.push({ |
| path: `./polygerrit-ui/app/types/${typeFile}`, |
| src: fs.readFileSync( |
| `./polygerrit-ui/app/types/${typeFile}`, 'utf-8'), |
| }); |
| } |
| |
| const toCheck = []; |
| for (key of Object.keys(mappings)) { |
| if (mappings[key].html && mappings[key].js) { |
| toCheck.push({ |
| htmlSrcPath: mappings[key].html, |
| jsSrcPath: mappings[key].js, |
| jsModule: 'polygerrit.' + mappings[key].package, |
| }); |
| } |
| } |
| |
| twinkie.checkTemplate(toCheck, additionalSources) |
| .then(() => {}, joinedErrors => { |
| if (joinedErrors) { |
| process.exit(1); |
| } |
| }).catch(e => { |
| console.error(e); |
| process.exit(1); |
| }); |
| }); |
| }); |