UNPKG

2.23 kBJavaScriptView Raw
1var dedent = require('dedent')
2var path = require('path')
3var tape = require('tape')
4var tmp = require('tmp')
5var fs = require('fs')
6
7var bankai = require('../')
8
9tape('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
46tape('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})