2017-06-23 09:40:20 +00:00
import { tap , expect } from 'tapbundle'
import * as smartq from 'smartq'
import { Qenv } from 'qenv'
let testQenv = new Qenv ( process . cwd ( ) , process . cwd ( ) + '/.nogit/' )
// the tested module
2017-09-13 11:47:38 +00:00
import * as smartdata from '../ts/index'
2017-06-23 09:40:20 +00:00
let mongoChildProcess
let testDb : smartdata.Db
tap . test ( 'should establish a connection to mongodb' , async ( ) = > {
2017-11-16 13:23:06 +00:00
// testDb = new smartdata.Db(`mongodb://${process.env.MONGO_USER}:${process.env.MONGO_PASS}@sandbox-shard-00-00-uyw7y.mongodb.net:27017,sandbox-shard-00-01-uyw7y.mongodb.net:27017,sandbox-shard-00-02-uyw7y.mongodb.net:27017/${process.env.MONGO_DATABASE}?ssl=true&replicaSet=sandbox-shard-0&authSource=admin`)
testDb = new smartdata . Db ( ` mongodb://localhost:27017/ ${ process . env . MONGO_DATABASE } ` )
2017-06-23 09:40:20 +00:00
await testDb . connect ( )
} )
let testCarInstance
tap . test ( 'should create an extended class' , async ( ) = > {
@smartdata . Collection ( testDb )
class TestCar extends smartdata . DbDoc < TestCar > {
@smartdata . svDb ( )
color : string
constructor ( optionsArg : {
color : string ,
property2 : number
} ) {
super ( )
this . color = optionsArg . color
}
}
testCarInstance = new TestCar ( {
color : 'red' ,
property2 : 2
} )
expect ( testCarInstance . name ) . to . equal ( 'TestCar' )
expect ( testCarInstance . saveableProperties [ 0 ] ) . equal ( 'color' )
2018-01-07 16:26:34 +00:00
expect ( testCarInstance . collection ) . be . instanceof ( smartdata . DbTable )
2017-06-23 09:40:20 +00:00
expect ( testCarInstance ) . be . instanceof ( smartdata . DbDoc )
if ( ! process . env . CI ) { console . log ( TestCar ) }
} )
tap . test ( 'should save testCar' , async ( ) = > {
await testCarInstance . save ( )
} )
tap . test ( 'should close the db Connection' , async ( ) = > {
await testDb . close ( )
} )
tap . start ( )