Browse Source

Refactor store tests into seperate module

emp
Luke Childs 7 years ago
committed by Jytesh
parent
commit
5008496db6
  1. 56
      packages/keyv/test/api.js
  2. 60
      packages/keyv/test/helpers/test-store.js
  3. 4
      packages/keyv/test/unit.js

56
packages/keyv/test/api.js

@ -1,56 +0,0 @@
import test from 'ava';
import delay from 'delay';
import Keyv from '../';
const store = new Map();
test.serial('.set(key, value) returns a Promise', t => {
const keyv = new Keyv({ store });
t.true(keyv.set('foo', 'bar') instanceof Promise);
});
test.serial('.set(key, value) resolves to value', async t => {
const keyv = new Keyv({ store });
t.is(await keyv.set('foo', 'bar'), 'bar');
});
test.serial('.set(key, value, ttl) sets a value that expires', async t => {
const keyv = new Keyv({ store });
t.is(await keyv.set('foo', 'bar', 100), 'bar');
t.is(await keyv.get('foo'), 'bar');
await delay(100);
t.is(await keyv.get('foo'), undefined);
});
test.serial('.get(key) returns a Promise', t => {
const keyv = new Keyv({ store });
t.true(keyv.get('foo') instanceof Promise);
});
test.serial('.get(key) resolves to value', async t => {
const keyv = new Keyv({ store });
await keyv.set('foo', 'bar');
t.is(await keyv.get('foo'), 'bar');
});
test.serial('.get(key) with nonexistent key resolves to undefined', async t => {
const keyv = new Keyv({ store });
await keyv.delete('foo');
t.is(await keyv.get('foo'), undefined);
});
test.serial('.delete(key) returns a Promise', t => {
const keyv = new Keyv({ store });
t.true(keyv.delete('foo') instanceof Promise);
});
test.serial('.delete(key) resolves to true', async t => {
const keyv = new Keyv({ store });
await keyv.set('foo', 'bar');
t.is(await keyv.delete('foo'), true);
});
test.serial('.delete(key) with nonexistent key resolves to false', async t => {
const keyv = new Keyv({ store });
t.is(await keyv.delete('foo'), false);
});

60
packages/keyv/test/helpers/test-store.js

@ -0,0 +1,60 @@
/* eslint-disable ava/no-ignored-test-files */
const test = require('ava');
const delay = require('delay');
const Keyv = require('../../');
const testStore = store => {
test.serial('.set(key, value) returns a Promise', t => {
const keyv = new Keyv({ store });
t.true(keyv.set('foo', 'bar') instanceof Promise);
});
test.serial('.set(key, value) resolves to value', async t => {
const keyv = new Keyv({ store });
t.is(await keyv.set('foo', 'bar'), 'bar');
});
test.serial('.set(key, value, ttl) sets a value that expires', async t => {
const keyv = new Keyv({ store });
t.is(await keyv.set('foo', 'bar', 100), 'bar');
t.is(await keyv.get('foo'), 'bar');
await delay(100);
t.is(await keyv.get('foo'), undefined);
});
test.serial('.get(key) returns a Promise', t => {
const keyv = new Keyv({ store });
t.true(keyv.get('foo') instanceof Promise);
});
test.serial('.get(key) resolves to value', async t => {
const keyv = new Keyv({ store });
await keyv.set('foo', 'bar');
t.is(await keyv.get('foo'), 'bar');
});
test.serial('.get(key) with nonexistent key resolves to undefined', async t => {
const keyv = new Keyv({ store });
await keyv.delete('foo');
t.is(await keyv.get('foo'), undefined);
});
test.serial('.delete(key) returns a Promise', t => {
const keyv = new Keyv({ store });
t.true(keyv.delete('foo') instanceof Promise);
});
test.serial('.delete(key) resolves to true', async t => {
const keyv = new Keyv({ store });
await keyv.set('foo', 'bar');
t.is(await keyv.delete('foo'), true);
});
test.serial('.delete(key) with nonexistent key resolves to false', async t => {
const keyv = new Keyv({ store });
t.is(await keyv.delete('foo'), false);
});
};
module.exports = testStore;

4
packages/keyv/test/unit.js

@ -1,6 +1,7 @@
import test from 'ava';
import delay from 'delay';
import Keyv from '../';
import testStore from './helpers/test-store';
test('Keyv is a class', t => {
t.is(typeof Keyv, 'function');
@ -61,3 +62,6 @@ test('.set(key, val, ttl) overwrites default tll option', async t => {
await delay(50);
t.is(await keyv.get('ping'), undefined);
});
const store = new Map();
testStore(store);

Loading…
Cancel
Save