UNPKG

2.02 kBJavaScriptView Raw
1var dedent = require('dedent')
2var rimraf = require('rimraf')
3var path = require('path')
4var tape = require('tape')
5var fs = require('fs')
6var os = require('os')
7
8var bankai = require('../')
9
10tape('extract style from script', function (assert) {
11 assert.plan(3)
12 var expected = '.foo{color:#00f}'
13 var script = dedent`
14 var css = require('sheetify')
15 var html = require('bel')
16 css\`
17 .foo { color: blue }
18 \`
19 html\`<foo class="foo">hello</foo>\`
20 `
21
22 var dirname = 'style-pipeline-' + (Math.random() * 1e4).toFixed()
23 var tmpDirname = path.join(os.tmpdir(), dirname)
24 var tmpScriptname = path.join(tmpDirname, 'index.js')
25
26 fs.mkdirSync(tmpDirname)
27 fs.writeFileSync(tmpScriptname, script)
28
29 var compiler = bankai(tmpScriptname, { watch: false })
30 compiler.styles('bundle.css', function (err, res) {
31 assert.error(err, 'no error writing style')
32 assert.equal(res.buffer.toString(), expected, 'res was equal')
33 rimraf.sync(tmpDirname)
34 })
35
36 compiler.scripts('bundle.js', function (err, res) {
37 assert.error(err, 'no error writing script')
38 })
39})
40
41tape('remove unused styles', function (assert) {
42 assert.plan(3)
43 var expected = '.foo{color:#00f}'
44 var script = dedent`
45 var css = require('sheetify')
46 var html = require('bel')
47 css\`
48 .foo { color: blue }
49 .bar { color: purple }
50 \`
51 html\`<foo class="foo">hello</foo>\`
52 `
53
54 var dirname = 'style-pipeline-' + (Math.random() * 1e4).toFixed()
55 var tmpDirname = path.join(os.tmpdir(), dirname)
56 var tmpScriptname = path.join(tmpDirname, 'index.js')
57
58 fs.mkdirSync(tmpDirname)
59 fs.writeFileSync(tmpScriptname, script)
60
61 var compiler = bankai(tmpScriptname, { watch: false })
62 compiler.styles('bundle.css', function (err, res) {
63 assert.error(err, 'no error writing style')
64 assert.equal(res.buffer.toString(), expected, 'res was equal')
65 rimraf.sync(tmpDirname)
66 })
67
68 compiler.scripts('bundle.js', function (err, res) {
69 assert.error(err, 'no error writing script')
70 })
71})