1 | var tape = require('tape');
|
2 |
|
3 | var browserify = require('browserify');
|
4 | var proxyquire = require('proxyquire');
|
5 | var fs = require('fs');
|
6 | var path = require('path');
|
7 | var rebundler = require('rebundler');
|
8 |
|
9 | var casesDir = path.join(__dirname, 'cases');
|
10 | var simpleCaseDir = path.join(casesDir, 'simple');
|
11 | var cssOutFilename = 'out.css';
|
12 |
|
13 | tape('multiple builds', function (t) {
|
14 | var fakeFs = {
|
15 | writeFile: function (filename, content, cb) {
|
16 | var expected = fs.readFileSync(path.join(simpleCaseDir, 'expected.css'), 'utf8');
|
17 |
|
18 | t.equal(filename, cssOutFilename, 'correct output filename');
|
19 | t.equal(content, expected, 'output matches expected');
|
20 | cb();
|
21 | }
|
22 | };
|
23 |
|
24 | var cssModulesify = proxyquire('../', {
|
25 | fs: fakeFs
|
26 | });
|
27 |
|
28 | var getBundler = rebundler(function (cache, packageCache) {
|
29 | return browserify(path.join(simpleCaseDir, 'main.js'), {
|
30 | cache: cache
|
31 | , packageCache: packageCache
|
32 | , fullPaths: true
|
33 | })
|
34 | .plugin(cssModulesify, {
|
35 | rootDir: path.join(simpleCaseDir)
|
36 | , output: cssOutFilename
|
37 | });
|
38 | });
|
39 |
|
40 | getBundler().bundle(function (err) {
|
41 | t.error(err, 'initial bundle without a cache does not error');
|
42 |
|
43 | getBundler().bundle(function (err2) {
|
44 | t.error(err2, 'second pass bundle with a cache does not error');
|
45 |
|
46 | t.end();
|
47 | });
|
48 | });
|
49 | });
|