Skip to content

Commit fe62e92

Browse files
yuki-takeichiflovilmart
authored andcommitted
Add NullCacheAdapter (#2636)
* Add NullCacheAdapter * clear returns promise explicitly * Add NullCacheAdapter accessor
1 parent 33e3993 commit fe62e92

File tree

4 files changed

+65
-1
lines changed

4 files changed

+65
-1
lines changed

spec/NullCacheAdapter.spec.js

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
var NullCacheAdapter = require('../src/Adapters/Cache/NullCacheAdapter').default;
2+
3+
describe('NullCacheAdapter', function() {
4+
var KEY = 'hello';
5+
var VALUE = 'world';
6+
7+
it('should expose promisifyed methods', (done) => {
8+
var cache = new NullCacheAdapter({
9+
ttl: NaN
10+
});
11+
12+
// Verify all methods return promises.
13+
Promise.all([
14+
cache.put(KEY, VALUE),
15+
cache.del(KEY),
16+
cache.get(KEY),
17+
cache.clear()
18+
]).then(() => {
19+
done();
20+
});
21+
});
22+
23+
it('should get/set/clear', (done) => {
24+
var cache = new NullCacheAdapter({
25+
ttl: NaN
26+
});
27+
28+
cache.put(KEY, VALUE)
29+
.then(() => cache.get(KEY))
30+
.then((value) => expect(value).toEqual(null))
31+
.then(() => cache.clear())
32+
.then(() => cache.get(KEY))
33+
.then((value) => expect(value).toEqual(null))
34+
.then(done);
35+
});
36+
37+
});

spec/index.spec.js

+1
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ describe('server', () => {
248248
expect(ParseServer.GCSAdapter).toThrow('GCSAdapter is not provided by parse-server anymore; please install parse-server-gcs-adapter');
249249
expect(ParseServer.FileSystemAdapter).toThrow();
250250
expect(ParseServer.InMemoryCacheAdapter).toThrow();
251+
expect(ParseServer.NullCacheAdapter).toThrow();
251252
done();
252253
});
253254

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
export class NullCacheAdapter {
2+
3+
constructor(ctx) {
4+
}
5+
6+
get(key) {
7+
return new Promise((resolve, _) => {
8+
return resolve(null);
9+
})
10+
}
11+
12+
put(key, value, ttl) {
13+
return Promise.resolve();
14+
}
15+
16+
del(key) {
17+
return Promise.resolve();
18+
}
19+
20+
clear() {
21+
return Promise.resolve();
22+
}
23+
}
24+
25+
export default NullCacheAdapter;

src/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import ParseServer from './ParseServer';
22
import S3Adapter from 'parse-server-s3-adapter'
33
import FileSystemAdapter from 'parse-server-fs-adapter'
44
import InMemoryCacheAdapter from './Adapters/Cache/InMemoryCacheAdapter'
5+
import NullCacheAdapter from './Adapters/Cache/NullCacheAdapter'
56
import TestUtils from './TestUtils';
67
import { useExternal } from './deprecated';
78
import { getLogger } from './logger';
@@ -21,4 +22,4 @@ Object.defineProperty(module.exports, 'logger', {
2122
});
2223

2324
export default ParseServer;
24-
export { S3Adapter, GCSAdapter, FileSystemAdapter, InMemoryCacheAdapter, TestUtils, _ParseServer as ParseServer };
25+
export { S3Adapter, GCSAdapter, FileSystemAdapter, InMemoryCacheAdapter, NullCacheAdapter, TestUtils, _ParseServer as ParseServer };

0 commit comments

Comments
 (0)