budibase/packages/core/test/initialiseData.spec.js

87 lines
3.0 KiB
JavaScript

import {
getMemoryTemplateApi,
basicAppHierarchyCreator_WithFields_AndIndexes,
} from "./specHelpers"
import { initialiseData } from "../src/appInitialise/initialiseData"
import { TRANSACTIONS_FOLDER } from "../src/transactions/transactionsCommon"
import {
AUTH_FOLDER,
USERS_LIST_FILE,
ACCESS_LEVELS_FILE,
} from "../src/authApi/authCommon"
describe("initialiseData", () => {
it("should create csv file for each index, when does not exist", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(`/customer_index/index.csv`)).toBeTruthy()
expect(await datastore.exists(`/customer_index`)).toBeTruthy()
expect(await datastore.exists(`/deceased/index.csv`)).toBeTruthy()
expect(await datastore.exists(`/deceased`)).toBeTruthy()
})
it("should create folder for collection", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(`/customers`)).toBeTruthy()
})
it("should create transactions folder", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(TRANSACTIONS_FOLDER)).toBeTruthy()
})
it("should create auth folder", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(AUTH_FOLDER)).toBeTruthy()
})
it("should create users list", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(USERS_LIST_FILE)).toBeTruthy()
})
it("should create access levels file", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(ACCESS_LEVELS_FILE)).toBeTruthy()
})
it("should create access levels file, with supplied object", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef, {
version: 0,
levels: [
{
name: "owner",
permissions: [{ type: "create user" }],
},
],
})
const levels = await datastore.loadJson(ACCESS_LEVELS_FILE)
expect(levels.levels[0].name).toBe("owner")
})
it("should initialise 'single record' type nodes", async () => {
const { appDef, datastore } = getApplicationDefinition()
await initialiseData(datastore, appDef)
expect(await datastore.exists(`/settings`)).toBeTruthy()
const settings = await datastore.loadJson("/settings/record.json")
expect(settings.type).toBe("settings")
})
const getApplicationDefinition = () => {
const { templateApi, app } = getMemoryTemplateApi()
const h = basicAppHierarchyCreator_WithFields_AndIndexes(templateApi)
return {
appDef: { hierarchy: h.root, actions: [], triggers: [] },
datastore: app.datastore,
h,
}
}
})