UNPKG

futoin-xferengine

Version:

Neutral clustered multi-currency transaction engine with limits

104 lines (89 loc) 3.19 kB
'use strict'; require( './prepare' ); const child_process = require( 'child_process' ); const $as = require( 'futoin-asyncsteps' ); const DBAutoConfig = require( 'futoin-database/AutoConfig' ); const integration_suite = require( './integrationsuite' ); const XferCCM = require( '../XferCCM' ); const DB_PORT = process.env.POSTGRESQL_PORT || '5432'; describe( 'PostgreSQL', function() { before( function( done ) { this.timeout( 30e3 ); const ccm = new XferCCM(); $as().add( ( as ) => { DBAutoConfig( as, ccm, null, { DB_TYPE: 'postgresql', DB_HOST: '127.0.0.1', DB_PORT: DB_PORT, DB_USER: 'ftntest', DB_PASS: 'test', DB_DB: 'postgres', } ); as.add( ( as ) => { ccm.db().query( as, 'DROP DATABASE IF EXISTS xfers' ); ccm.db().query( as, 'CREATE DATABASE xfers' ); } ); as.add( ( as ) => { let res; res = child_process.spawnSync( 'cid', [ 'tool', 'exec', 'flyway', '--', 'migrate', `-url=jdbc:postgresql://127.0.0.1:${DB_PORT}/xfers`, '-user=ftntest', '-password=test', `-locations=filesystem:${__dirname}/../sql/postgresql,filesystem:${__dirname}/../node_modules/futoin-eventstream/sql/active/postgresql`, ] ); if ( res.status ) { console.log( res.stderr.toString() ); as.error( 'Fail' ); } ccm.close(); } ); }, ( as, err ) => { console.log( err ); console.log( as.state.error_info ); done( as.state.last_exception || 'Fail' ); } ).add( ( as ) => done() ) .execute(); } ); const vars = { as: null, ccm: null, }; beforeEach( 'specific', function() { const ccm = new XferCCM(); const as = $as(); vars.ccm = ccm; vars.as = as; as.add( ( as ) => { DBAutoConfig( as, ccm, { xfer: {}, }, { DB_XFER_TYPE: 'postgresql', DB_XFER_HOST: '127.0.0.1', DB_XFER_PORT: DB_PORT, DB_XFER_USER: 'ftntest', DB_XFER_DB: 'xfers', DB_XFER_PASS: 'test', } ); }, ( as, err ) => { console.log( err ); console.log( as.state.error_info ); console.log( as.state.last_exception ); } ); } ); afterEach( function() { vars.ccm.close(); vars.ccm = null; } ); integration_suite( describe, it, vars ); } );