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('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 |
|
41 | tape('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 | })
|