summaryrefslogtreecommitdiffstats
path: root/lib/output/__tests__/createMock.js
blob: f21c5446cab15388051628122d866ddd3214f399 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var Immutable = require('immutable');

var Output = require('../../models/output');
var Book = require('../../models/book');
var parseBook = require('../../parse/parseBook');
var createMockFS = require('../../fs/mock');
var preparePlugins = require('../preparePlugins');

/**
 * Create an output using a generator
 *
 * FOR TESTING PURPOSE ONLY
 *
 * @param {Generator} generator
 * @param {Map<String:String|Map>} files
 * @return {Promise<Output>}
 */
function createMockOutput(generator, files, options) {
    var fs = createMockFS(files);
    var book = Book.createForFS(fs);
    var state = generator.State? generator.State({}) : Immutable.Map();

    book = book.setLogLevel('disabled');
    options = generator.Options(options);

    return parseBook(book)
    .then(function(resultBook) {
        return new Output({
            book:      resultBook,
            options:   options,
            state:     state,
            generator: generator.name
        });
    })
    .then(preparePlugins);
}

module.exports = createMockOutput;