cache-manager
Advanced tools
Comparing version 2.10.1 to 2.10.2
@@ -0,1 +1,4 @@ | ||
- 2.10.2 2020-01-30 | ||
- Disallow mutation of values in memory store (#103). | ||
- 2.10.1 2019-11-06 | ||
@@ -2,0 +5,0 @@ - Add .js to module path to fix compilers (#131). -@imjohnbo |
var Lru = require("lru-cache"); | ||
var cloneDeep = require('lodash.clonedeep'); | ||
var utils = require('../utils'); | ||
@@ -34,2 +35,4 @@ var isObject = utils.isObject; | ||
self.set = function(key, value, options, cb) { | ||
value = cloneDeep(value); | ||
if (typeof options === 'function') { | ||
@@ -36,0 +39,0 @@ cb = options; |
{ | ||
"name": "cache-manager", | ||
"version": "2.10.1", | ||
"version": "2.10.2", | ||
"description": "Cache module for Node.js", | ||
@@ -24,2 +24,3 @@ "main": "index.js", | ||
"async": "1.5.2", | ||
"lodash.clonedeep": "4.5.0", | ||
"lru-cache": "4.0.0" | ||
@@ -26,0 +27,0 @@ }, |
var assert = require('assert'); | ||
var support = require('../support'); | ||
var checkErr = support.checkErr; | ||
var caching = require('../../index').caching; | ||
var memoryStore = require('../../lib/stores/memory'); | ||
@@ -37,2 +39,94 @@ | ||
}); | ||
describe("when used with wrap() function", function() { | ||
var cache; | ||
var key; | ||
var opts = {}; | ||
beforeEach(function() { | ||
key = support.random.string(20); | ||
}); | ||
context("when cache misses", function() { | ||
function getCachedObject(name, cb) { | ||
cache.wrap(key, function(cacheCb) { | ||
cacheCb(null, {foo: 'bar'}); | ||
}, opts, cb); | ||
} | ||
function getCachedString(name, cb) { | ||
cache.wrap(key, function(cacheCb) { | ||
cacheCb(null, 'bar'); | ||
}, opts, cb); | ||
} | ||
function getCachedArray(name, cb) { | ||
cache.wrap(key, function(cacheCb) { | ||
cacheCb(null, [1, 2, 3]); | ||
}, opts, cb); | ||
} | ||
function getCachedNumber(name, cb) { | ||
cache.wrap(key, function(cacheCb) { | ||
cacheCb(null, 34); | ||
}, opts, cb); | ||
} | ||
beforeEach(function() { | ||
cache = caching({store: 'memory', safeClone: true, ttl: opts.ttl, ignoreCacheErrors: false}); | ||
}); | ||
it("does not allow mutation of objects", function(done) { | ||
getCachedObject('foo', function(err, result) { | ||
checkErr(err); | ||
result.foo = 'buzz'; | ||
getCachedObject('foo', function(err, result) { | ||
checkErr(err); | ||
assert.equal(result.foo, 'bar'); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
it("does not allow mutation of arrays", function(done) { | ||
getCachedArray('foo', function(err, result) { | ||
checkErr(err); | ||
result = ['a', 'b', 'c']; | ||
getCachedArray('foo', function(err, result) { | ||
checkErr(err); | ||
assert.deepEqual(result, [1, 2, 3]); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
it("does not allow mutation of strings", function(done) { | ||
getCachedString('foo', function(err, result) { | ||
checkErr(err); | ||
result = 'buzz'; | ||
getCachedString('foo', function(err, result) { | ||
checkErr(err); | ||
assert.equal(result, 'bar'); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
it("does not allow mutation of numbers", function(done) { | ||
getCachedNumber('foo', function(err, result) { | ||
checkErr(err); | ||
result = 12; | ||
getCachedNumber('foo', function(err, result) { | ||
checkErr(err); | ||
assert.equal(result, 34); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
}); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
213501
4561
3
+ Addedlodash.clonedeep@4.5.0
+ Addedlodash.clonedeep@4.5.0(transitive)