1 | var dedent = require('dedent')
|
2 | var rimraf = require('rimraf')
|
3 | var path = require('path')
|
4 | var tape = require('tape')
|
5 | var fs = require('fs')
|
6 | var os = require('os')
|
7 |
|
8 | var bankai = require('../')
|
9 |
|
10 | var tmpDirname
|
11 |
|
12 | function cleanup () {
|
13 | rimraf.sync(tmpDirname)
|
14 | }
|
15 |
|
16 | tape('run an asset pipeline', function (assert) {
|
17 | assert.on('end', cleanup)
|
18 | var script = dedent`
|
19 | 1 + 1
|
20 | `
|
21 |
|
22 | var file = dedent`
|
23 | hello planet
|
24 | `
|
25 |
|
26 | var dirname = 'manifest-pipeline-' + (Math.random() * 1e4).toFixed()
|
27 | tmpDirname = path.join(os.tmpdir(), dirname)
|
28 | var assetDirname = path.join(os.tmpdir(), dirname, 'assets')
|
29 |
|
30 | var tmpScriptname = path.join(tmpDirname, 'index.js')
|
31 | var tmpFilename = path.join(assetDirname, 'file.txt')
|
32 |
|
33 | fs.mkdirSync(tmpDirname)
|
34 | fs.mkdirSync(assetDirname)
|
35 | fs.writeFileSync(tmpScriptname, script)
|
36 | fs.writeFileSync(tmpFilename, file)
|
37 |
|
38 | var compiler = bankai(tmpScriptname, { watch: false })
|
39 |
|
40 | compiler.on('error', function (name, sub, err) {
|
41 | assert.error(err, 'no error')
|
42 | })
|
43 |
|
44 | compiler.on('change', function (nodeName, second) {
|
45 | if (nodeName !== 'documents' || second !== 'list') return
|
46 | assert.end()
|
47 | })
|
48 |
|
49 | compiler.assets('assets/file.txt', function (err, buf) {
|
50 | assert.error(err, 'no error reading file')
|
51 | assert.ok(buf, 'buffer is fine fine fine')
|
52 | })
|
53 | })
|