yeoman-test

Test utilities for Yeoman generators
Installation
$ npm install --save-dev yeoman-test
Install target environment and generator:
$ npm install --save-dev yeoman-generator@xxx yeoman-environment@xxx
Usage
Usage using the convenience last RunResult instance:
import helpers, { result } from 'yeoman-test';
describe('generator test', () => {
describe('test', () => {
beforeEach(async () => {
await helpers
.run(
'namespace',
{},
{}
)
[.cd(dir)]
[.onTargetDirectory(dir => {})
[.withGenerators([])]
[.withLookups({})]
[.withOptions({})]
[.withLocalConfig({})]
[.withAnswers()]
[.withMockedGenerators(['namespace', ...])]
[.withFiles({
'foo.txt': 'bar',
'test.json', { content: true },
})]
[.withYoRc({ 'generator-foo': { bar: {} } })]
[.withYoRcConfig('generator-foo.bar', { : {} })]
[.commitFiles()]
[.onGenerator(gen => {})]
[.onEnvironment(env => {})];
[await result.create('another-generator').run();]
);
it('runs correctly', () => {
[result.assertFile('file.txt');]
[result.assertNoFile('file.txt');]
[result.assertFileContent('file.txt', 'content');]
[result.assertEqualsFileContent('file.txt', 'content');]
[result.assertNoFileContent('file.txt', 'content');]
[result.assertJsonFileContent('file.txt', {});]
[result.assertNoJsonFileContent('file.txt', {});]
});
});
});
Generator compose:
import assert from 'assert';
import helpers, { result } from 'yeoman-test';
describe('my-gen', () => {
before(() => helpers.run('my-gen').withMockedGenerator(['composed-gen']));
it('should compose with composed-gen', () => {
assert(result.mockedGenerators['composed-gen'].calledOnce);
});
});
Generic test folder:
import helpers, { result } from 'yeoman-test';
describe('generic test', () => {
before(() => helpers.prepareTemporaryDir());
it('test', () => {
result.assert...;
});
});
See our api documentation for latest yeoman-test release.
See our api documentation for yeoman-test 5.0.1. Use 5.x for yeoman-environment 2.x support.
See our api documentation for yeoman-test 2.x.
See our documentation for yeoman-test 2.x.
License
MIT © The Yeoman Team