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/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/Adapters/Cache/NullCacheAdapter.js b/src/Adapters/Cache/NullCacheAdapter.js new file mode 100644 index 0000000000..430f7c363b --- /dev/null +++ b/src/Adapters/Cache/NullCacheAdapter.js @@ -0,0 +1,25 @@ +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() { + return Promise.resolve(); + } +} + +export default NullCacheAdapter; 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 };