-
Notifications
You must be signed in to change notification settings - Fork 3
/
blob-store.test.js
49 lines (47 loc) · 1.72 KB
/
blob-store.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const blobStore = require('./blob-store');
const express = require('express');
const moxios = require('moxios');
const request = require('supertest');
const initBlobStore = (
mockRedisClient = {
getAsync: jest.fn(() => Promise.resolve()),
setAsync: jest.fn(() => Promise.resolve())
}
) => {
const app = express();
app.use(blobStore(mockRedisClient));
return app;
}
describe('GET /store/:key with params', () => {
test('It should call redisClient.setAsync with key route parameter as key and stringified params as value', async () => {
const mockRedisClient = {
setAsync: jest.fn(() => Promise.resolve())
};
const app = initBlobStore(mockRedisClient);
await request(app).get('/store/my-key?hello=world&foo=bar');
expect(mockRedisClient.setAsync).toHaveBeenCalledWith(
'my-key',
'{\"hello\":\"world\",\"foo\":\"bar\"}'
);
});
});
describe('GET /:key', () => {
test('It should call redisClient.getAsync with key route parameter as key', async () => {
const mockRedisClient = {
getAsync: jest.fn(() => Promise.resolve('{}'))
};
const app = initBlobStore(mockRedisClient);
await request(app).get('/my-key');
expect(mockRedisClient.getAsync).toHaveBeenCalledWith(
'my-key',
);
});
test('It should return output of redisClient.getAsync with key route parameter as key', async () => {
const mockRedisClient = {
getAsync: jest.fn(() => Promise.resolve('{}'))
};
const app = initBlobStore(mockRedisClient);
const response = await request(app).get('/my-key');
expect(response.body).toEqual({});
});
});