UNPKG

3.08 kBJavaScriptView Raw
1
2var SPAWNWATCHER = require('../src/core/spawn-watch')
3 , chai = require('chai')
4 , expect = chai.expect
5 , should = chai.should()
6 , path = require('path')
7 , _ = require('underscore')
8 , FRESHResume = require('../src/core/fresh-resume')
9 , HMR = require( '../src/hackmyapi')
10 , validator = require('is-my-json-valid')
11 , READFILES = require('recursive-readdir-sync')
12 , fileContains = require('../src/utils/file-contains')
13 , FS = require('fs');
14
15chai.config.includeStack = true;
16
17function genThemes( title, src, fmt ) {
18
19 describe('Testing themes against ' + title.toUpperCase() + ' resume ' + '(' + fmt + ')' , function () {
20
21 var _sheet;
22
23 function genTheme( fmt, src, themeName, themeLoc, testTitle ) {
24 themeLoc = themeLoc || themeName;
25 testTitle = themeName.toUpperCase() + ' theme (' + fmt + ') should generate without throwing an exception';
26 it( testTitle, function () {
27 function tryOpen() {
28 //var src = ['node_modules/jane-q-fullstacker/resume/jane-resume.json'];
29 var dst = ['test/sandbox/' + fmt + '/' + title + '/' + themeName + '/resume.all'];
30 var opts = {
31 theme: themeLoc,
32 format: fmt,
33 prettify: true,
34 silent: false,
35 css: 'embed'
36 };
37 try {
38 HMR.verbs.build( src, dst, opts, function(msg) {
39 msg = msg || '';
40 console.log(msg);
41 });
42 }
43 catch(ex) {
44 console.log(ex);
45 console.log(ex.stack);
46 throw ex;
47 }
48 }
49 tryOpen.should.not.Throw();
50 });
51 }
52
53 genTheme(fmt, src, 'hello-world');
54 genTheme(fmt, src, 'compact');
55 genTheme(fmt, src, 'modern');
56 genTheme(fmt, src, 'minimist');
57 genTheme(fmt, src, 'awesome');
58 genTheme(fmt, src, 'positive');
59 genTheme(fmt, src, 'jsonresume-theme-boilerplate', 'node_modules/jsonresume-theme-boilerplate' );
60 genTheme(fmt, src, 'jsonresume-theme-sceptile', 'node_modules/jsonresume-theme-sceptile' );
61 genTheme(fmt, src, 'jsonresume-theme-modern', 'node_modules/jsonresume-theme-modern' );
62 genTheme(fmt, src, 'jsonresume-theme-classy', 'node_modules/jsonresume-theme-classy' );
63
64 });
65
66}
67
68function folderContains( needle, haystack ) {
69 return _.some( READFILES( path.join(__dirname, haystack) ), function( absPath ) {
70 if( FS.lstatSync( absPath ).isFile() ) {
71 if( fileContains( absPath, needle ) ) {
72 console.log('Found invalid metadata in ' + absPath);
73 return true;
74 }
75 }
76 });
77}
78
79genThemes( 'jane-q-fullstacker', ['node_modules/fresh-test-resumes/src/jane-fullstacker.fresh.json'], 'FRESH' );
80genThemes( 'johnny-trouble', ['node_modules/fresh-test-resumes/src/johnny-trouble.fresh.json'], 'FRESH' );
81genThemes( 'richard-hendriks', ['test/resumes/jrs-0.0.0/richard-hendriks.json'], 'JRS' );
82
83describe('Verifying generated theme files...', function() {
84 it('Generated files should not contain ICE.', function() {
85 expect( folderContains('@@@@', 'sandbox') ).to.be.false;
86 });
87});