budibase/packages/server/middleware/routes/neo/tests/couchTestUtils.js

59 lines
1.2 KiB
JavaScript

const couchdb = require("../../../../db");
const CLIENT_DB_ID = "client-testing";
exports.destroyDatabase = couchdb.db.destroy;
exports.createModel = async instanceId => {
const model = {
"name": "TestModel",
"type": "model",
"key": "name",
"fields": [
{
"name": "name",
"type": "string"
}
]
}
const response = await couchdb.db.use(instanceId).insert(model);
return {
...response,
...model
};
}
exports.createClientDatabase = async () => {
await couchdb.db.create(CLIENT_DB_ID);
await couchdb.db.use(CLIENT_DB_ID).insert({
views: {
by_type: {
map: function(doc) {
emit([doc.type], doc._id);
}
}
}
}, '_design/client');
}
exports.createInstanceDatabase = async instanceId => {
await couchdb.db.create(instanceId);
await couchdb.db.use(instanceId).insert({
views: {
by_type: {
map: function(doc) {
emit([doc.type], doc._id);
}
}
}
}, '_design/database');
return instanceId;
}
exports.insertDocument = async (databaseId, document) => {
const { id, ...documentFields } = document;
await couchdb.db.use(databaseId).insert(documentFields, id);
}