| var Seq = require('seq'); |
| var browserify = require('../'); |
| var test = require('tap').test; |
| var shasum = require('shasum'); |
| |
| test('syntax cache - valid', function (t) { |
| t.plan(2); |
| |
| var expectedCache = {} |
| var cacheKey; |
| |
| var b = browserify(__dirname + '/syntax_cache/valid.js'); |
| b.once('dep', function(row) { |
| cacheKey = shasum(row.source); |
| expectedCache[cacheKey] = true; |
| }); |
| |
| Seq() |
| .seq(function() { b.bundle(this); }) |
| .seq(function() { |
| t.deepEqual(b._syntaxCache, expectedCache); |
| b._syntaxCache[cacheKey] = expectedCache[cacheKey] = 'beep'; |
| b.bundle(function(err, src) { |
| // if the cache worked, the "cacheKey" |
| // should not be reset to "true" |
| t.deepEqual(b._syntaxCache, expectedCache); |
| }); |
| }); |
| }); |
| |
| test('syntax cache - skip invalid', function (t) { |
| t.plan(5); |
| |
| var b = browserify(__dirname + '/syntax_cache/invalid.js'); |
| |
| Seq() |
| .seq(function() { b.bundle(this); }) |
| .catch(function(lastErr) { |
| t.deepEqual(b._syntaxCache, {}); |
| t.similar(String(lastErr), /ParseError/); |
| b.bundle(function(err, src) { |
| t.deepEqual(b._syntaxCache, {}); |
| t.similar(String(err), /ParseError/); |
| t.notEqual(lastErr, err, 'errors should be unique'); |
| }); |
| }); |
| }); |