Skip to content

Commit 5edb527

Browse files
committed
test: Use memory adapter in micro-analytics-cli tests
1 parent 02f0125 commit 5edb527

File tree

7 files changed

+16
-64
lines changed

7 files changed

+16
-64
lines changed

packages/micro-analytics-cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"babel-jest": "^19.0.0",
4545
"babel-polyfill": "^6.20.0",
4646
"babel-runtime": "^6.23.0",
47-
"micro-analytics-adapter-memory": "^0.1.0",
47+
"micro-analytics-adapter-memory": "^1.0.0",
4848
"nodemon": "^1.11.0",
4949
"request-promise": "^4.1.1"
5050
}

packages/micro-analytics-cli/src/db.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ function initDbAdapter(options) {
1212
module.exports.has = adapter.has;
1313
module.exports.keys = adapter.keys;
1414
module.exports.subscribe = adapter.subscribe;
15+
module.exports.clear = adapter.clear;
1516
module.exports.hasFeature = feature => typeof adapter[feature] === 'function';
1617

1718
if (module.exports.hasFeature('init')) {

packages/micro-analytics-cli/tests/atomicity.test.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
const request = require('request-promise');
2-
const { listen, mockDb } = require('./utils');
2+
const { listen } = require('./utils');
33

4-
jest.mock('flat-file-db', () => mockDb);
54
const db = require('../src/db');
65
const service = require('../src/handler');
76
let url;
87

98
beforeAll(() => {
10-
db.initDbAdapter({ adapter: 'flat-file-db' });
9+
db.initDbAdapter({ adapter: 'memory' });
1110
});
1211

1312
beforeEach(async () => {
14-
url = await listen(service({ adapter: 'flat-file-db' }));
15-
mockDb._setDelay(10);
16-
});
17-
18-
afterEach(async () => {
19-
mockDb._reset();
20-
mockDb._setDelay();
13+
url = await listen(service({ adapter: 'memory' }));
14+
db.clear();
2115
});
2216

2317
it('should atomically set two views coming in at the same time', async () => {

packages/micro-analytics-cli/tests/errors.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ const db = require('../src/db');
66
let url;
77

88
beforeAll(() => {
9-
db.initDbAdapter({ adapter: 'flat-file-db' });
9+
db.initDbAdapter({ adapter: 'memory' });
1010
});
1111

1212
beforeEach(async () => {
13-
url = await listen(service({ adapter: 'flat-file-db' }));
13+
url = await listen(service({ adapter: 'memory' }));
1414
});
1515

1616
it('should throw an error if no pathname is provided', async () => {

packages/micro-analytics-cli/tests/items.test.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
const request = require('request-promise');
2-
const { listen, mockDb } = require('./utils');
2+
const { listen } = require('./utils');
33

4-
jest.mock('flat-file-db', () => mockDb);
54
const db = require('../src/db');
65
const service = require('../src/handler');
76
let url;
87

98
beforeAll(() => {
10-
db.initDbAdapter({ adapter: 'flat-file-db' });
9+
db.initDbAdapter({ adapter: 'memory' });
1110
});
1211

1312
beforeEach(async () => {
14-
mockDb._reset();
15-
url = await listen(service({ adapter: 'flat-file-db' }));
13+
db.clear();
14+
url = await listen(service({ adapter: 'memory' }));
1615
});
1716

1817
describe('single', () => {
@@ -100,7 +99,7 @@ describe('all', () => {
10099
const after = new Date('2017-01-01T09:11:00.000Z').getTime();
101100
const before = new Date('2017-01-01T09:41:00.000Z').getTime();
102101

103-
mockDb._put('/rover', {
102+
await db.put('/rover', {
104103
views: [
105104
{ time: new Date('2017-01-01T09:00:00.000Z').getTime() },
106105
{ time: new Date('2017-01-01T09:10:00.000Z').getTime() },

packages/micro-analytics-cli/tests/sse.test.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
const { listen, mockDb } = require('./utils');
2-
jest.mock('flat-file-db', () => mockDb);
1+
const { listen } = require('./utils');
32
const db = require('../src/db');
43
const sseHandler = require('../src/sse');
54
let url;
65

76
beforeAll(() => {
8-
db.initDbAdapter({ adapter: 'flat-file-db' });
7+
db.initDbAdapter({ adapter: 'memory' });
98
});
109

1110
beforeEach(() => {
12-
mockDb._reset();
11+
db.clear();
1312
});
1413

1514
describe('sse', () => {
Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,6 @@
11
const micro = require('micro');
22
const noop = () => {};
33

4-
// Mock the database
5-
const DB = () => {
6-
let data = {};
7-
let DELAY = 1;
8-
9-
return {
10-
sync: () => ({
11-
get: key => {
12-
if (!{}.hasOwnProperty.call(data, key)) {
13-
throw new Error('non-existing-key');
14-
}
15-
return data[key];
16-
},
17-
put: (key, val, cb) => {
18-
setTimeout(() => {
19-
data[key] = val;
20-
cb();
21-
}, DELAY);
22-
},
23-
has: key => ({}.hasOwnProperty.call(data, key)),
24-
keys: () => Object.keys(data),
25-
del: noop,
26-
clear: noop,
27-
close: noop,
28-
on: noop,
29-
}),
30-
31-
// Custom methods used in tests
32-
_reset: () => {
33-
data = {};
34-
},
35-
_setDelay: ms => {
36-
DELAY = ms || 1;
37-
},
38-
_put: (key, value) => {
39-
data[key] = value;
40-
},
41-
};
42-
};
43-
444
// Taken from the zeit/micro test suite
455
// https://github.com/zeit/micro/blob/9bb0f0cb9b9406e08b3bccbcd827d96989b4e16a/test/index.js#L13-L26
466
const listen = (fn, opts) => {
@@ -60,4 +20,3 @@ const listen = (fn, opts) => {
6020

6121
module.exports = exports = {};
6222
exports.listen = listen;
63-
exports.mockDb = DB();

0 commit comments

Comments
 (0)