1 |
|
2 | var chai = require('chai')
|
3 | , expect = chai.expect
|
4 | , should = chai.should()
|
5 | , path = require('path')
|
6 | , _ = require('underscore')
|
7 | , FRESHResume = require('../src/core/fresh-resume')
|
8 | , HMR = require( '../src/hackmyapi')
|
9 | , validator = require('is-my-json-valid')
|
10 | , READFILES = require('recursive-readdir-sync')
|
11 | , fileContains = require('../src/utils/file-contains')
|
12 | , FS = require('fs')
|
13 | , CHALK = require('chalk');
|
14 |
|
15 | chai.config.includeStack = true;
|
16 |
|
17 | function 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 |
|
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 | debug: true
|
37 | };
|
38 | try {
|
39 | var v = new HMR.verbs.build();
|
40 | v.invoke( src, dst, opts );
|
41 | }
|
42 | catch(ex) {
|
43 | console.error( ex );
|
44 | console.error( ex.stack );
|
45 | throw ex;
|
46 | }
|
47 | }
|
48 | tryOpen.should.not.Throw();
|
49 | });
|
50 | }
|
51 |
|
52 | genTheme(fmt, src, 'hello-world');
|
53 | genTheme(fmt, src, 'compact');
|
54 | genTheme(fmt, src, 'modern');
|
55 | genTheme(fmt, src, 'underscore');
|
56 | genTheme(fmt, src, 'awesome');
|
57 | genTheme(fmt, src, 'positive');
|
58 | genTheme(fmt, src, 'jsonresume-theme-boilerplate', 'node_modules/jsonresume-theme-boilerplate' );
|
59 | genTheme(fmt, src, 'jsonresume-theme-sceptile', 'node_modules/jsonresume-theme-sceptile' );
|
60 | genTheme(fmt, src, 'jsonresume-theme-modern', 'node_modules/jsonresume-theme-modern' );
|
61 | genTheme(fmt, src, 'jsonresume-theme-classy', 'node_modules/jsonresume-theme-classy' );
|
62 |
|
63 | });
|
64 |
|
65 | }
|
66 |
|
67 | function folderContains( needle, haystack ) {
|
68 | return _.some( READFILES( path.join(__dirname, haystack) ), function( absPath ) {
|
69 | if( FS.lstatSync( absPath ).isFile() ) {
|
70 | if( fileContains( absPath, needle ) ) {
|
71 | console.error('Found invalid metadata in ' + absPath);
|
72 | return true;
|
73 | }
|
74 | }
|
75 | });
|
76 | }
|
77 |
|
78 | genThemes( 'jane-q-fullstacker', ['node_modules/fresh-test-resumes/src/fresh/jane-fullstacker.json'], 'FRESH' );
|
79 | genThemes( 'johnny-trouble', ['node_modules/fresh-test-resumes/src/fresh/johnny-trouble.json'], 'FRESH' );
|
80 | genThemes( 'richard-hendriks', ['test/resumes/jrs-0.0.0/richard-hendriks.json'], 'JRS' );
|
81 |
|
82 | describe('Verifying generated theme files...', function() {
|
83 | it('Generated files should not contain ICE.', function() {
|
84 | expect( folderContains('@@@@', 'sandbox') ).to.be.false;
|
85 | });
|
86 | });
|