2022-06-05 19:04:16 +00:00
|
|
|
import { expect, expectAsync, tap } from '@pushrocks/tapbundle';
|
|
|
|
import * as smartmongo from '@pushrocks/smartmongo';
|
|
|
|
import * as mongodump from '../ts/index.js';
|
|
|
|
|
|
|
|
import * as sampledata from './sampledata.js';
|
|
|
|
|
|
|
|
let testSmartMongo: smartmongo.SmartMongo;
|
|
|
|
let testMongodump: mongodump.MongoDump;
|
|
|
|
|
|
|
|
tap.test('should create a test database', async () => {
|
|
|
|
testSmartMongo = await smartmongo.SmartMongo.createAndStart();
|
|
|
|
});
|
|
|
|
|
|
|
|
tap.test('should create a mongodump instance', async () => {
|
|
|
|
testMongodump = new mongodump.MongoDump();
|
|
|
|
expect(testMongodump).toBeInstanceOf(mongodump.MongoDump);
|
|
|
|
});
|
|
|
|
|
|
|
|
tap.test('should deploy sample data', async () => {
|
|
|
|
await sampledata.generateTestData(await testSmartMongo.getMongoDescriptor())
|
|
|
|
})
|
|
|
|
|
|
|
|
tap.test('should add a mongotarget to mongodump instance', async () => {
|
|
|
|
const target = await testMongodump.addMongoTargetByMongoDescriptor(await testSmartMongo.getMongoDescriptor());
|
|
|
|
await target.getCollections();
|
2022-06-06 11:04:30 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
tap.test('should dump a collection to a directory', async () => {
|
|
|
|
const target = await testMongodump.addMongoTargetByMongoDescriptor(await testSmartMongo.getMongoDescriptor());
|
2022-06-06 14:01:25 +00:00
|
|
|
await target.dumpAllCollectionsToDir('.nogit', docArg => docArg.id, true);
|
2022-06-05 19:04:16 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
tap.test('should stop the smartmongo instance', async () => {
|
|
|
|
await sampledata.stop();
|
|
|
|
await testMongodump.stop();
|
|
|
|
await testSmartMongo.stop();
|
|
|
|
});
|
|
|
|
|
|
|
|
tap.start();
|