diff --git a/lib/lru-cache.js b/lib/lru-cache.js index abfa346..47bb0b8 100644 --- a/lib/lru-cache.js +++ b/lib/lru-cache.js @@ -103,6 +103,12 @@ Cache.prototype = { return 1; } }, + + clear: function () { + this.cache.clear(); + this.newest = null; + this.oldest = null; + } }; // In bytes. diff --git a/server.js b/server.js index 8a9141a..ba4a0a5 100644 --- a/server.js +++ b/server.js @@ -11,7 +11,6 @@ var camp = Camp.start({ hostname: bindAddress, secure: secureServer }); -module.exports = camp; Camp.log.unpipe('warn', 'stderr'); var tryUrl = require('url').format({ protocol: secureServer ? 'https' : 'http', @@ -299,6 +298,11 @@ function cache(f) { }; } +module.exports = { + camp, + requestCache +}; + camp.notfound(/\.(svg|png|gif|jpg|json)/, function(query, match, end, request) { var format = match[1]; var badgeData = getBadgeData("404", query); diff --git a/test/lru-cache.spec.js b/test/lru-cache.spec.js index efbd549..040f4a9 100644 --- a/test/lru-cache.spec.js +++ b/test/lru-cache.spec.js @@ -137,4 +137,22 @@ describe('The LRU cache', function () { assert.equal(slot2.newer, null); }); + it('should clear', function () { + // Set up. + const cache = new LRU(2); + cache.set('key1', 'value1'); + cache.set('key2', 'value2'); + + // Confidence check. + assert.equal(cache.get('key1'), 'value1'); + assert.equal(cache.get('key2'), 'value2'); + + // Run. + cache.clear(); + + // Test. + assert.equal(cache.get('key1'), null); + assert.equal(cache.get('key2'), null); + assert.equal(cache.cache.size, 0); + }); }); diff --git a/test/test.spec.js b/test/test.spec.js index d9fcb75..1a49096 100644 --- a/test/test.spec.js +++ b/test/test.spec.js @@ -79,7 +79,7 @@ describe('The server', function () { server = require('../server'); }); after('Shut down the server', function(done) { - server.close(function () { done(); }); + server.camp.close(function () { done(); }); }); it('should produce colorscheme badges', function(done) {