UNPKG

bot18

Version:

A high-frequency cryptocurrency trading bot by Zenbot creator @carlos8f

104 lines (98 loc) 3.75 kB
var sosa_mem = require('./'); var assert = require('assert'); var state = {}; function ran (method) { state[method] || (state[method] = 0); state[method]++; } var db = sosa_mem({prefix: 'test_' + Math.random().toString(16)}); var humans = db('humans', { load: function (obj, opts, cb) { ran('load', obj, opts); cb(null, obj); }, save: function (obj, opts, cb) { ran('save', obj, opts); cb(null, obj); }, afterSave: function (obj, opts, cb) { ran('afterSave', obj, opts); cb(null, obj); }, destroy: function (obj, opts, cb) { ran('destroy', obj, opts); cb(null, obj); }, methods: { whodat: function (obj) { return obj.name; } } }); humans.load('carlos', function (err, human) { assert.ifError(err); assert.strictEqual(human, null); humans.select(function (err, results) { assert.ifError(err); assert.deepEqual(results, []); var carlos = {id: 'carlos', name: 'los'}; humans.save(carlos, function (err, human) { assert.ifError(err); assert.deepEqual(carlos, human); humans.select(function (err, results) { assert.ifError(err); assert.deepEqual(results, [carlos]); assert.deepEqual(state, {save: 1, afterSave: 1, load: 1}); var brian = {id: 'brian', name: 'brian'}; humans.save(brian, function (err, human) { assert.ifError(err); assert.deepEqual(brian, human); humans.select(function (err, results) { assert.ifError(err); assert.deepEqual(results, [carlos, brian]); assert.deepEqual(state, {save: 2, afterSave: 2, load: 3}); var nick = {id: 'nick', name: 'nick'}; humans.save(nick, function (err, human) { assert.ifError(err); assert.deepEqual(nick, human); humans.select(function (err, results) { assert.ifError(err); assert.deepEqual(results, [carlos, brian, nick]); assert.deepEqual(state, {save: 3, afterSave: 3, load: 6}); humans.destroy('brian', function (err, human) { assert.ifError(err); assert.deepEqual(brian, human); assert.deepEqual(state, {save: 3, afterSave: 3, load: 6, destroy: 1}); humans.load('brian', function (err, human) { assert.ifError(err); assert.strictEqual(human, null); humans.select(function (err, results) { assert.ifError(err); assert.deepEqual(results, [carlos, nick]); assert.deepEqual(state, {save: 3, afterSave: 3, load: 8, destroy: 1}); assert.equal(humans.whodat(carlos), 'los'); humans.in('cool_club').select(function (err, results) { assert.ifError(err); assert.deepEqual(results, []); assert.deepEqual(state, {save: 3, afterSave: 3, load: 8, destroy: 1}); humans.in('cool_club').save({id: 'carlos', name: 'los'}, function (err, human) { assert.ifError(err); assert.deepEqual(carlos, human); humans.in('cool_club').select(function (err, results) { assert.ifError(err); assert.deepEqual(results, [carlos]); console.log('passed'); }); }); }); }); }); }); }); }); }); }); }); }); }); });