generator-fountain-angular2
Version:
Yeoman Fountain generator to scaffold a webapp with Angular 2 written in ES6 (Babel), TypeScript through Webpack or SystemJS including tools Gulp 4, ESLint, Browsersync and Karma
58 lines (52 loc) • 1.57 kB
JavaScript
const path = require('path');
const test = require('ava');
const chai = require('chai');
const expect = chai.expect;
const spies = require('chai-spies');
chai.use(spies);
const TestUtils = require('fountain-generator').TestUtils;
let context;
const files = [
'src/index.js',
'src/index.css',
'src/app/index.js',
'src/app/footer.html',
'src/app/footer.js',
'src/app/footer.spec.js',
'src/app/header.html',
'src/app/header.js',
'src/app/header.spec.js',
'src/app/main.html',
'src/app/main.js',
'src/app/main.spec.js',
'src/app/title.html',
'src/app/title.js',
'src/app/title.spec.js',
'src/app/techs/index.js',
'src/app/techs/tech.html',
'src/app/techs/tech.js',
'src/app/techs/tech.spec.js',
'src/app/techs/techs.html',
'src/app/techs/techs.js',
'src/app/techs/techs.spec.js'
];
test.before(() => {
context = TestUtils.mock('techs');
require('../../generators/techs/index');
process.chdir(path.resolve(__dirname, '../../'));
});
test(`Call this.copyTemplate 22 times`, t => {
const spy = chai.spy.on(context, 'copyTemplate');
TestUtils.call(context, 'writing.src', {
version: require('../../package.json').version,
date: new Date().toString()
});
expect(spy).to.have.been.called.exactly(files.length);
files.forEach(file => t.true(context.copyTemplate[file].length > 0));
});
test('Call this.prepareTechJson', () => {
context.prepareTechJson = () => {};
const spy = chai.spy.on(context, 'prepareTechJson');
TestUtils.call(context, 'writing.techs');
expect(spy).to.have.been.called.once();
});