ADD test for export and preview

This commit is contained in:
salomonelli 2017-10-20 21:40:13 +02:00
parent 5b0ac5559e
commit 298b87fe3d
8 changed files with 88 additions and 2 deletions

View File

@ -14,9 +14,13 @@
"dev": "node build/dev-server.js",
"predev": "check-node-version --node \">= 8.0.0\"",
"start": "node build/dev-server.js",
"pdf": "node scripts/app.js",
"pdf": "node scripts/export.js",
"preview": "node scripts/preview.js",
"test": "concurrently \"npm run dev\" \"testcafe chromium test/\" --success first --kill-others --raw",
"test:deleteFiles": "node test/scripts/deleteFiles.js",
"test:e2e": "concurrently \"npm run dev\" \"testcafe chromium test/\" --success first --kill-others --raw",
"test:export": "SCRIPT=export npm run test:deleteFiles && npm run export && mocha test/scripts/export.js",
"test:preview": "SCRIPT=preview npm run test:deleteFiles && npm run preview && mocha test/scripts/preview.js",
"test": "npm run test:export && npm run test:preview && npm run test:e2e",
"export": "concurrently \"npm run dev\" \"npm run pdf\" --success first --kill-others --raw",
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
},
@ -71,6 +75,7 @@
"less-loader": "4.0.5",
"local-web-server": "^2.2.4",
"lolex": "^2.1.3",
"mocha": "^4.0.1",
"mv": "2.1.1",
"opn": "5.1.0",
"optimize-css-assets-webpack-plugin": "^3.2.0",

View File

0
test/resumes.js → test/e2e/resumes.js Normal file → Executable file
View File

22
test/scripts/allResumes.js Executable file
View File

@ -0,0 +1,22 @@
const path = require('path');
const fs = require('fs');
const getResumesFromDirectories = () => {
const directories = getDirectories();
return directories
.map(dir => {
let fileName = dir.replace('.vue', '');
return {
path: fileName,
name: fileName
};
});
};
const getDirectories = () => {
const srcpath = path.join(__dirname, '../../src/resumes');
return fs.readdirSync(srcpath)
.filter(file => file !== 'resumes.js' && file !== 'template.vue' && file !== 'options.js');
};
module.exports = getResumesFromDirectories;

25
test/scripts/deleteFiles.js Executable file
View File

@ -0,0 +1,25 @@
const fs = require('fs');
const path = require('path');
let directory = '';
switch (process.env.SCRIPT) {
case 'export':
directory = path.join(__dirname, '../../pdf');
break;
case 'preview':
directory = path.join(__dirname, '../../src/assets/preview');
break;
default:
console.log('Environment variable "ENV" is not defined.');
process.exit();
}
fs.readdir(directory, (err, files) => {
if (err) throw err;
for (const file of files) {
fs.unlink(path.join(directory, file), err => {
if (err) throw err;
});
}
console.log('Deleted files.');
});

17
test/scripts/export.js Executable file
View File

@ -0,0 +1,17 @@
const mocha = require('mocha');
const assert = require('assert');
const path = require('path');
const fs = require('fs');
const describe = mocha.describe;
const it = mocha.it;
const allResumes = require('./allResumes');
describe('npm run export', () => {
it('should have generated the pdf files', () => {
const resumes = allResumes();
resumes.forEach(resume => {
const p = path.join(__dirname, '../../pdf/' + resume.path + '.pdf');
assert.ok(fs.existsSync(p));
});
});
});

17
test/scripts/preview.js Executable file
View File

@ -0,0 +1,17 @@
const mocha = require('mocha');
const assert = require('assert');
const path = require('path');
const fs = require('fs');
const describe = mocha.describe;
const it = mocha.it;
const allResumes = require('./allResumes');
describe('npm run preview', () => {
it('should have generated the png files', () => {
const resumes = allResumes();
resumes.forEach(resume => {
const p = path.join(__dirname, '../../src/assets/preview/resume-' + resume.path + '.png');
assert.ok(fs.existsSync(p));
});
});
});