lru-memoizer.freeze.test.js 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const memoizer = require("./..");
  2. const assert = require("chai").assert;
  3. describe("lru-memoizer (freeze)", function () {
  4. var loadTimes = 0,
  5. memoized;
  6. beforeEach(function () {
  7. loadTimes = 0;
  8. memoized = memoizer({
  9. load: function (key, callback) {
  10. loadTimes++;
  11. callback(null, { foo: "bar", buffer: Buffer.from("1234") });
  12. },
  13. hash: function (key) {
  14. return key;
  15. },
  16. freeze: true,
  17. });
  18. });
  19. it("should return a freeze every time with the same cached structure", function (done) {
  20. memoized("test", function (err, r1) {
  21. assert.isNull(err);
  22. assert.strictEqual(loadTimes, 1);
  23. assert.equal(r1.foo, "bar");
  24. r1.foo = "bax";
  25. assert.isFrozen(r1);
  26. memoized("test", function (err, r2) {
  27. assert.isNull(err);
  28. assert.strictEqual(loadTimes, 1);
  29. assert.equal(r2.foo, "bar");
  30. assert.strictEqual(r1, r2);
  31. assert.isFrozen(r2);
  32. done();
  33. });
  34. });
  35. });
  36. });