From 1a48d395ab877499db1f0fe60524d54eb1e33a09 Mon Sep 17 00:00:00 2001 From: Yuki Takeichi Date: Thu, 1 Sep 2016 20:34:53 +0900 Subject: [PATCH 1/3] Add NullCacheAdapter --- spec/NullCacheAdapter.spec.js | 37 ++++++++++++++++++++++++++ src/Adapters/Cache/NullCacheAdapter.js | 24 +++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 spec/NullCacheAdapter.spec.js create mode 100644 src/Adapters/Cache/NullCacheAdapter.js diff --git a/spec/NullCacheAdapter.spec.js b/spec/NullCacheAdapter.spec.js new file mode 100644 index 0000000000..a1943559f5 --- /dev/null +++ b/spec/NullCacheAdapter.spec.js @@ -0,0 +1,37 @@ +var NullCacheAdapter = require('../src/Adapters/Cache/NullCacheAdapter').default; + +describe('NullCacheAdapter', function() { + var KEY = 'hello'; + var VALUE = 'world'; + + it('should expose promisifyed methods', (done) => { + var cache = new NullCacheAdapter({ + ttl: NaN + }); + + // Verify all methods return promises. + Promise.all([ + cache.put(KEY, VALUE), + cache.del(KEY), + cache.get(KEY), + cache.clear() + ]).then(() => { + done(); + }); + }); + + it('should get/set/clear', (done) => { + var cache = new NullCacheAdapter({ + ttl: NaN + }); + + cache.put(KEY, VALUE) + .then(() => cache.get(KEY)) + .then((value) => expect(value).toEqual(null)) + .then(() => cache.clear()) + .then(() => cache.get(KEY)) + .then((value) => expect(value).toEqual(null)) + .then(done); + }); + +}); diff --git a/src/Adapters/Cache/NullCacheAdapter.js b/src/Adapters/Cache/NullCacheAdapter.js new file mode 100644 index 0000000000..daaa42d856 --- /dev/null +++ b/src/Adapters/Cache/NullCacheAdapter.js @@ -0,0 +1,24 @@ +export class NullCacheAdapter { + + constructor(ctx) { + } + + get(key) { + return new Promise((resolve, _) => { + return resolve(null); + }) + } + + put(key, value, ttl) { + return Promise.resolve(); + } + + del(key) { + return Promise.resolve(); + } + + clear() { + } +} + +export default NullCacheAdapter; From fdbe0650addf08ad1209b9173d07162e64efa658 Mon Sep 17 00:00:00 2001 From: Yuki Takeichi Date: Wed, 7 Sep 2016 16:57:13 +0900 Subject: [PATCH 2/3] clear returns promise explicitly --- src/Adapters/Cache/NullCacheAdapter.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Adapters/Cache/NullCacheAdapter.js b/src/Adapters/Cache/NullCacheAdapter.js index daaa42d856..430f7c363b 100644 --- a/src/Adapters/Cache/NullCacheAdapter.js +++ b/src/Adapters/Cache/NullCacheAdapter.js @@ -18,6 +18,7 @@ export class NullCacheAdapter { } clear() { + return Promise.resolve(); } } From c456ced26cf62ad937559e97c50d49c7b595a6cb Mon Sep 17 00:00:00 2001 From: Yuki Takeichi Date: Wed, 7 Sep 2016 17:21:08 +0900 Subject: [PATCH 3/3] Add NullCacheAdapter accessor --- spec/index.spec.js | 1 + src/index.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/index.spec.js b/spec/index.spec.js index 3987a0da3f..7f30388f41 100644 --- a/spec/index.spec.js +++ b/spec/index.spec.js @@ -248,6 +248,7 @@ describe('server', () => { expect(ParseServer.GCSAdapter).toThrow('GCSAdapter is not provided by parse-server anymore; please install parse-server-gcs-adapter'); expect(ParseServer.FileSystemAdapter).toThrow(); expect(ParseServer.InMemoryCacheAdapter).toThrow(); + expect(ParseServer.NullCacheAdapter).toThrow(); done(); }); diff --git a/src/index.js b/src/index.js index 8f3e0e2d04..39d2e95f3e 100644 --- a/src/index.js +++ b/src/index.js @@ -2,6 +2,7 @@ import ParseServer from './ParseServer'; import S3Adapter from 'parse-server-s3-adapter' import FileSystemAdapter from 'parse-server-fs-adapter' import InMemoryCacheAdapter from './Adapters/Cache/InMemoryCacheAdapter' +import NullCacheAdapter from './Adapters/Cache/NullCacheAdapter' import TestUtils from './TestUtils'; import { useExternal } from './deprecated'; import { getLogger } from './logger'; @@ -21,4 +22,4 @@ Object.defineProperty(module.exports, 'logger', { }); export default ParseServer; -export { S3Adapter, GCSAdapter, FileSystemAdapter, InMemoryCacheAdapter, TestUtils, _ParseServer as ParseServer }; +export { S3Adapter, GCSAdapter, FileSystemAdapter, InMemoryCacheAdapter, NullCacheAdapter, TestUtils, _ParseServer as ParseServer };