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 | tape('read a manifest', function (assert) {
|
11 | assert.plan(5)
|
12 | var script = dedent`
|
13 | 1 + 1
|
14 | `
|
15 |
|
16 | var manifest = dedent`
|
17 | {
|
18 | "name": "demo",
|
19 | "short_name": "demo",
|
20 | "description": "A very cute app",
|
21 | "start_url": "/",
|
22 | "display": "standalone",
|
23 | "background_color": "#ffc0cb",
|
24 | "theme_color": "#ffc0cb",
|
25 | "icons": [{
|
26 | "src": "/assets/icon.png",
|
27 | "type": "image/png",
|
28 | "sizes": "512x512"
|
29 | }]
|
30 | }
|
31 | `
|
32 |
|
33 | var dirname = 'manifest-pipeline-' + (Math.random() * 1e4).toFixed()
|
34 | var tmpDirname = path.join(os.tmpdir(), dirname)
|
35 | var tmpScriptname = path.join(tmpDirname, 'index.js')
|
36 | var tmpManifestname = path.join(tmpDirname, 'manifest.json')
|
37 |
|
38 | fs.mkdirSync(tmpDirname)
|
39 | fs.writeFileSync(tmpScriptname, script)
|
40 | fs.writeFileSync(tmpManifestname, manifest)
|
41 |
|
42 | var compiler = bankai(tmpScriptname, { watch: false })
|
43 | compiler.manifest(function (err, res) {
|
44 | assert.error(err, 'no error writing manifest')
|
45 | assert.ok(res, 'output exists')
|
46 | assert.ok(res.buffer, 'output buffer exists')
|
47 | assert.ok(res.hash, 'output hash exists')
|
48 | })
|
49 |
|
50 | compiler.scripts('bundle.js', function (err, res) {
|
51 | assert.error(err, 'no error writing script')
|
52 | rimraf.sync(tmpDirname)
|
53 | })
|
54 | })
|
55 |
|
56 | tape('should provide a default manifest', function (assert) {
|
57 | assert.plan(3)
|
58 | var script = dedent`
|
59 | 1 + 1
|
60 | `
|
61 |
|
62 | var dirname = 'manifest-pipeline-' + (Math.random() * 1e4).toFixed()
|
63 | var tmpDirname = path.join(os.tmpdir(), dirname)
|
64 | var tmpScriptname = path.join(tmpDirname, 'index.js')
|
65 |
|
66 | fs.mkdirSync(tmpDirname)
|
67 | fs.writeFileSync(tmpScriptname, script)
|
68 |
|
69 | var compiler = bankai(tmpScriptname, { watch: false })
|
70 | compiler.manifest(function (err, res) {
|
71 | assert.error(err, 'no error writing manifest')
|
72 | assert.ok(res, 'output exists')
|
73 | })
|
74 |
|
75 | compiler.scripts('bundle.js', function (err, res) {
|
76 | assert.error(err, 'no error writing script')
|
77 | rimraf.sync(tmpDirname)
|
78 | })
|
79 | })
|