mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-27 12:53:13 +03:00
86 lines
2.6 KiB
JavaScript
86 lines
2.6 KiB
JavaScript
|
const assert = require('assert');
|
||
|
const sinon = require('sinon');
|
||
|
const RedisCache = require('../index');
|
||
|
|
||
|
describe('Adapter Cache Redis', function () {
|
||
|
afterEach(function () {
|
||
|
sinon.restore();
|
||
|
});
|
||
|
|
||
|
it('can initialize Redis cache instance directly', async function () {
|
||
|
const redisCacheInstanceStub = {
|
||
|
store: {
|
||
|
getClient: sinon.stub().returns({
|
||
|
on: sinon.stub()
|
||
|
})
|
||
|
}
|
||
|
};
|
||
|
const cache = new RedisCache({
|
||
|
cache: redisCacheInstanceStub
|
||
|
});
|
||
|
|
||
|
assert.ok(cache);
|
||
|
});
|
||
|
|
||
|
describe('get', function () {
|
||
|
it('can get a value from the cache', async function () {
|
||
|
const redisCacheInstanceStub = {
|
||
|
get: sinon.stub().resolves('value from cache'),
|
||
|
store: {
|
||
|
getClient: sinon.stub().returns({
|
||
|
on: sinon.stub()
|
||
|
})
|
||
|
}
|
||
|
};
|
||
|
const cache = new RedisCache({
|
||
|
cache: redisCacheInstanceStub
|
||
|
});
|
||
|
|
||
|
const value = await cache.get('key');
|
||
|
|
||
|
assert.equal(value, 'value from cache');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('set', function () {
|
||
|
it('can set a value in the cache', async function () {
|
||
|
const redisCacheInstanceStub = {
|
||
|
set: sinon.stub().resolvesArg(1),
|
||
|
store: {
|
||
|
getClient: sinon.stub().returns({
|
||
|
on: sinon.stub()
|
||
|
})
|
||
|
}
|
||
|
};
|
||
|
const cache = new RedisCache({
|
||
|
cache: redisCacheInstanceStub
|
||
|
});
|
||
|
|
||
|
const value = await cache.set('key-here', 'new value');
|
||
|
|
||
|
assert.equal(value, 'new value');
|
||
|
assert.equal(redisCacheInstanceStub.set.args[0][0], 'key-here');
|
||
|
});
|
||
|
|
||
|
it('sets a key based on keyPrefix', async function () {
|
||
|
const redisCacheInstanceStub = {
|
||
|
set: sinon.stub().resolvesArg(1),
|
||
|
store: {
|
||
|
getClient: sinon.stub().returns({
|
||
|
on: sinon.stub()
|
||
|
})
|
||
|
}
|
||
|
};
|
||
|
const cache = new RedisCache({
|
||
|
cache: redisCacheInstanceStub,
|
||
|
keyPrefix: 'testing-prefix:'
|
||
|
});
|
||
|
|
||
|
const value = await cache.set('key-here', 'new value');
|
||
|
|
||
|
assert.equal(value, 'new value');
|
||
|
assert.equal(redisCacheInstanceStub.set.args[0][0], 'testing-prefix:key-here');
|
||
|
});
|
||
|
});
|
||
|
});
|