machinomy
Version:
Micropayments powered by Ethereum
68 lines • 3.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const expect = require("expect");
const Storage_1 = require("./Storage");
const EngineNedb_1 = require("./storage/nedb/EngineNedb");
const NedbChannelsDatabase_1 = require("./storage/nedb/NedbChannelsDatabase");
const NedbTokensDatabase_1 = require("./storage/nedb/NedbTokensDatabase");
const NedbPaymentsDatabase_1 = require("./storage/nedb/NedbPaymentsDatabase");
const EnginePostgres_1 = require("./storage/postgresql/EnginePostgres");
const PostgresChannelsDatabase_1 = require("./storage/postgresql/PostgresChannelsDatabase");
const PostgresTokensDatabase_1 = require("./storage/postgresql/PostgresTokensDatabase");
const PostgresPaymentsDatabase_1 = require("./storage/postgresql/PostgresPaymentsDatabase");
const contracts_1 = require("@machinomy/contracts");
const sinon = require("sinon");
const EngineSqlite_1 = require("./storage/sqlite/EngineSqlite");
const SqliteChannelsDatabase_1 = require("./storage/sqlite/SqliteChannelsDatabase");
const SqliteTokensDatabase_1 = require("./storage/sqlite/SqliteTokensDatabase");
const SqlitePaymentsDatabase_1 = require("./storage/sqlite/SqlitePaymentsDatabase");
describe('Storage', () => {
let web3;
let deployed;
let contractStub;
let inflator = {};
beforeEach(() => {
web3 = {
currentProvider: {}
};
deployed = {};
contractStub = sinon.stub(contracts_1.Unidirectional, 'contract');
contractStub.withArgs(web3.currentProvider).returns({
deployed: sinon.stub().resolves(Promise.resolve(deployed))
});
});
afterEach(() => {
contractStub.restore();
});
context('for Nedb', async () => {
const url = 'nedb://';
specify('provide Nedb databases', async () => {
const storage = await Storage_1.default.build(url, inflator);
expect(storage.engine instanceof EngineNedb_1.default).toBeTruthy();
expect(storage.channelsDatabase instanceof NedbChannelsDatabase_1.default).toBeTruthy();
expect(storage.tokensDatabase instanceof NedbTokensDatabase_1.default).toBeTruthy();
expect(storage.paymentsDatabase instanceof NedbPaymentsDatabase_1.default).toBeTruthy();
});
});
context('for Sqlite', async () => {
const url = 'sqlite://';
specify('provide Sqlite databases', async () => {
const storage = await Storage_1.default.build(url, inflator);
expect(storage.engine instanceof EngineSqlite_1.default).toBeTruthy();
expect(storage.channelsDatabase instanceof SqliteChannelsDatabase_1.default).toBeTruthy();
expect(storage.tokensDatabase instanceof SqliteTokensDatabase_1.default).toBeTruthy();
expect(storage.paymentsDatabase instanceof SqlitePaymentsDatabase_1.default).toBeTruthy();
});
});
context('for Postgresql', async () => {
const url = 'postgresql://host/database';
specify('provide Postgresql databases', async () => {
const storage = await Storage_1.default.build(url, inflator);
expect(storage.engine instanceof EnginePostgres_1.default).toBeTruthy();
expect(storage.channelsDatabase instanceof PostgresChannelsDatabase_1.default).toBeTruthy();
expect(storage.tokensDatabase instanceof PostgresTokensDatabase_1.default).toBeTruthy();
expect(storage.paymentsDatabase instanceof PostgresPaymentsDatabase_1.default).toBeTruthy();
});
});
});
//# sourceMappingURL=Storage.test.js.map