1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-05 09:56:22 +00:00
HackMyResume/test/test-themes.js

87 lines
3.0 KiB
JavaScript
Raw Normal View History

2015-12-09 10:41:04 +00:00
var chai = require('chai')
2015-12-09 10:41:04 +00:00
, expect = chai.expect
, should = chai.should()
, path = require('path')
, _ = require('underscore')
, FRESHResume = require('../src/core/fresh-resume')
2016-01-04 12:23:20 +00:00
, HMR = require( '../src/hackmyapi')
, validator = require('is-my-json-valid')
, READFILES = require('recursive-readdir-sync')
, fileContains = require('../src/utils/file-contains')
2016-01-09 11:44:47 +00:00
, FS = require('fs')
, CHALK = require('chalk');
2015-12-09 10:41:04 +00:00
2016-01-02 05:15:46 +00:00
chai.config.includeStack = true;
2015-12-09 10:41:04 +00:00
2015-12-31 02:07:28 +00:00
function genThemes( title, src, fmt ) {
describe('Testing themes against ' + title.toUpperCase() + ' resume ' + '(' + fmt + ')' , function () {
2015-12-09 10:41:04 +00:00
var _sheet;
function genTheme( fmt, src, themeName, themeLoc, testTitle ) {
themeLoc = themeLoc || themeName;
2015-12-31 02:07:28 +00:00
testTitle = themeName.toUpperCase() + ' theme (' + fmt + ') should generate without throwing an exception';
it( testTitle, function () {
2015-12-12 16:13:37 +00:00
function tryOpen() {
//var src = ['node_modules/jane-q-fullstacker/resume/jane-resume.json'];
2015-12-31 02:07:28 +00:00
var dst = ['test/sandbox/' + fmt + '/' + title + '/' + themeName + '/resume.all'];
2015-12-12 16:13:37 +00:00
var opts = {
theme: themeLoc,
format: fmt,
2015-12-12 16:13:37 +00:00
prettify: true,
2016-01-04 12:23:20 +00:00
silent: false,
2016-01-18 05:34:57 +00:00
css: 'embed',
debug: true
2015-12-12 16:13:37 +00:00
};
2016-01-04 12:23:20 +00:00
try {
2016-01-09 11:44:47 +00:00
var v = new HMR.verbs.build();
2016-01-18 05:34:57 +00:00
v.invoke( src, dst, opts );
2016-01-04 12:23:20 +00:00
}
catch(ex) {
2016-01-18 05:34:57 +00:00
console.error( ex );
console.error( ex.stack );
2016-01-04 12:23:20 +00:00
throw ex;
}
2015-12-12 16:13:37 +00:00
}
tryOpen.should.not.Throw();
});
}
2015-12-31 02:07:28 +00:00
genTheme(fmt, src, 'hello-world');
genTheme(fmt, src, 'compact');
genTheme(fmt, src, 'modern');
2016-01-11 23:08:31 +00:00
genTheme(fmt, src, 'underscore');
2015-12-31 02:07:28 +00:00
genTheme(fmt, src, 'awesome');
genTheme(fmt, src, 'positive');
genTheme(fmt, src, 'jsonresume-theme-boilerplate', 'node_modules/jsonresume-theme-boilerplate' );
genTheme(fmt, src, 'jsonresume-theme-sceptile', 'node_modules/jsonresume-theme-sceptile' );
genTheme(fmt, src, 'jsonresume-theme-modern', 'node_modules/jsonresume-theme-modern' );
genTheme(fmt, src, 'jsonresume-theme-classy', 'node_modules/jsonresume-theme-classy' );
});
2015-12-31 02:07:28 +00:00
}
2015-12-09 10:41:04 +00:00
function folderContains( needle, haystack ) {
return _.some( READFILES( path.join(__dirname, haystack) ), function( absPath ) {
if( FS.lstatSync( absPath ).isFile() ) {
if( fileContains( absPath, needle ) ) {
2016-01-18 05:34:57 +00:00
console.error('Found invalid metadata in ' + absPath);
return true;
}
}
});
}
genThemes( 'jane-q-fullstacker', ['node_modules/fresh-test-resumes/src/fresh/jane-fullstacker.json'], 'FRESH' );
genThemes( 'johnny-trouble', ['node_modules/fresh-test-resumes/src/fresh/johnny-trouble.json'], 'FRESH' );
2015-12-31 02:07:28 +00:00
genThemes( 'richard-hendriks', ['test/resumes/jrs-0.0.0/richard-hendriks.json'], 'JRS' );
describe('Verifying generated theme files...', function() {
it('Generated files should not contain ICE.', function() {
expect( folderContains('@@@@', 'sandbox') ).to.be.false;
});
});