rethinkdb-fixtures
Version:
Easily load fixtures into Rethinkdb. Useful for testing.
74 lines (59 loc) • 1.44 kB
JavaScript
;
const R = require('rethinkdb');
const Lab = require('lab');
const Code = require('code');
const expect = Code.expect;
const lab = exports.lab = Lab.script();
const options = {
host: process.env.RETHINKDB_INSTANCE_PORT_8080_TCP_ADDR,
db: process.env.RETHINKDB || 'test',
verbose: true,
clear: true
};
const Insert = require('../index')(options).Insert;
const fixture = {
items: [
{
name: 'Item 1'
},
{
name: 'Item 2'
}
],
weirdos: [
{
name: 'Weirdo 1'
},
{
name: 'Weirdo 2'
}
]
};
lab.experiment('Clear', () => {
lab.test('it clears table before inserting', (done) => {
Insert(fixture)
.then( (created) => {
return created;
})
.then( () => {
return Insert(fixture);
})
.then( () => {
return R.connect(options);
})
.then( (conn) => {
return Promise.all([R.table('items').run(conn), conn]);
})
.then( (promises) => {
const [cursor, conn] = promises;
return Promise.all([cursor.toArray(), conn]);
})
.then( (promises) => {
const [items,conn] = promises;
expect(items.length).to.equal(2);
conn.close();
done();
})
.catch(done);
});
});