1 | var dedent = require('dedent')
|
2 | var path = require('path')
|
3 | var tape = require('tape')
|
4 | var tmp = require('tmp')
|
5 | var fs = require('fs')
|
6 |
|
7 | var bankai = require('../')
|
8 |
|
9 | tape('run an asset pipeline', function (assert) {
|
10 | var script = dedent`
|
11 | 1 + 1
|
12 | `
|
13 |
|
14 | var file = dedent`
|
15 | hello planet
|
16 | `
|
17 |
|
18 | var tmpDir = tmp.dirSync({ dir: path.join(__dirname, '../tmp'), unsafeCleanup: true })
|
19 | assert.on('end', tmpDir.removeCallback)
|
20 | var assetDirname = path.join(tmpDir.name, 'assets')
|
21 |
|
22 | var tmpScriptname = path.join(tmpDir.name, 'index.js')
|
23 | var tmpFilename = path.join(assetDirname, 'file.txt')
|
24 |
|
25 | fs.mkdirSync(assetDirname)
|
26 | fs.writeFileSync(tmpScriptname, script)
|
27 | fs.writeFileSync(tmpFilename, file)
|
28 |
|
29 | var compiler = bankai(tmpScriptname, { watch: false })
|
30 |
|
31 | compiler.on('error', function (name, sub, err) {
|
32 | assert.error(err, 'no error')
|
33 | })
|
34 |
|
35 | compiler.on('change', function (nodeName, second) {
|
36 | if (nodeName !== 'documents' || second !== 'list') return
|
37 | assert.end()
|
38 | })
|
39 |
|
40 | compiler.assets('assets/file.txt', function (err, buf) {
|
41 | assert.error(err, 'no error reading file')
|
42 | assert.ok(buf, 'buffer is fine fine fine')
|
43 | })
|
44 | })
|
45 |
|
46 | tape('use correct asset dir when entry point is a dir', function (assert) {
|
47 | var script = dedent`
|
48 | document.body.textContent = 'Whatever'
|
49 | `
|
50 | var file = dedent`
|
51 | a file!!!
|
52 | `
|
53 |
|
54 | var tmpDir = tmp.dirSync({ dir: path.join(__dirname, '../tmp'), unsafeCleanup: true })
|
55 | assert.on('end', tmpDir.removeCallback)
|
56 | var assetDirname = path.join(tmpDir.name, 'assets')
|
57 |
|
58 | var tmpScriptname = path.join(tmpDir.name, 'index.js')
|
59 | var tmpFilename = path.join(assetDirname, 'file.txt')
|
60 |
|
61 | fs.mkdirSync(assetDirname)
|
62 | fs.writeFileSync(tmpScriptname, script)
|
63 | fs.writeFileSync(tmpFilename, file)
|
64 |
|
65 | var compiler = bankai(tmpDir.name, { watch: false })
|
66 |
|
67 | compiler.on('error', function (name, sub, err) {
|
68 | assert.error(err, 'no error')
|
69 | })
|
70 |
|
71 | compiler.assets('assets/file.txt', function (err, buf) {
|
72 | assert.error(err, 'no error reading file')
|
73 | assert.ok(buf, 'buffer is fine fine fine')
|
74 | assert.equal(buf, tmpFilename)
|
75 | })
|
76 |
|
77 | compiler.on('change', function (nodeName, second) {
|
78 | if (nodeName !== 'documents' || second !== 'list') return
|
79 | assert.end()
|
80 | })
|
81 | })
|