102 lines
3.3 KiB
JavaScript
102 lines
3.3 KiB
JavaScript
import {
|
|
setupApphierarchy,
|
|
basicAppHierarchyCreator_WithFields,
|
|
getNewFieldAndAdd,
|
|
} from "./specHelpers"
|
|
import { joinKey } from "../src/common"
|
|
import { isFunction, isArray } from "lodash"
|
|
|
|
describe("recordApi > getContext", () => {
|
|
it("'referenceExists()' should return true when the reference is in the index", async () => {
|
|
const { recordApi, appHierarchy } = await setupApphierarchy(
|
|
basicAppHierarchyCreator_WithFields
|
|
)
|
|
|
|
const customer = recordApi.getNew(
|
|
appHierarchy.customerRecord.collectionNodeKey(),
|
|
"customer"
|
|
)
|
|
customer.isalive = true
|
|
await recordApi.save(customer)
|
|
|
|
const invoiceCollectionKey = joinKey(customer.key, "invoices")
|
|
const invoice = recordApi.getNew(invoiceCollectionKey, "invoice")
|
|
|
|
const context = await recordApi.getContext(invoice.key)
|
|
|
|
expect(isFunction(context.referenceExists)).toBeTruthy()
|
|
const result = await context.referenceExists("customer", customer.key)
|
|
expect(result).toBe(true)
|
|
})
|
|
|
|
it("'referenceExists()' should return false when the reference is not in the index", async () => {
|
|
const { recordApi, appHierarchy } = await setupApphierarchy(
|
|
basicAppHierarchyCreator_WithFields
|
|
)
|
|
|
|
const customer = recordApi.getNew(
|
|
appHierarchy.customerRecord.collectionNodeKey(),
|
|
"customer"
|
|
)
|
|
customer.isalive = true
|
|
await recordApi.save(customer)
|
|
|
|
const invoiceCollectionKey = joinKey(customer.key, "invoices")
|
|
const invoice = recordApi.getNew(invoiceCollectionKey, "invoice")
|
|
|
|
const context = await recordApi.getContext(invoice.key)
|
|
|
|
const result = await context.referenceExists("customer", "not a key")
|
|
expect(result).toBe(false)
|
|
})
|
|
|
|
it("referenceOptions() should return list of indexed {key, value}", async () => {
|
|
const { recordApi, appHierarchy } = await setupApphierarchy(
|
|
basicAppHierarchyCreator_WithFields
|
|
)
|
|
|
|
const customer = recordApi.getNew(
|
|
appHierarchy.customerRecord.collectionNodeKey(),
|
|
"customer"
|
|
)
|
|
customer.surname = "Leedog"
|
|
customer.isalive = true
|
|
await recordApi.save(customer)
|
|
|
|
const invoiceCollectionKey = joinKey(customer.key, "invoices")
|
|
const invoice = recordApi.getNew(invoiceCollectionKey, "invoice")
|
|
|
|
const context = await recordApi.getContext(invoice.key)
|
|
|
|
expect(isFunction(context.referenceOptions)).toBeTruthy()
|
|
const result = await context.referenceOptions("customer")
|
|
expect(isArray(result)).toBeTruthy()
|
|
expect(result[0].key).toBe(customer.key)
|
|
expect(result[0].value).toBe(customer.surname)
|
|
})
|
|
|
|
it("referenceOptions() should return an empty list when no records are in the index", async () => {
|
|
const { recordApi, appHierarchy } = await setupApphierarchy(
|
|
basicAppHierarchyCreator_WithFields
|
|
)
|
|
|
|
const customer = recordApi.getNew(
|
|
appHierarchy.customerRecord.collectionNodeKey(),
|
|
"customer"
|
|
)
|
|
customer.surname = "Leedog"
|
|
customer.isalive = false
|
|
await recordApi.save(customer)
|
|
|
|
const invoiceCollectionKey = joinKey(customer.key, "invoices")
|
|
const invoice = recordApi.getNew(invoiceCollectionKey, "invoice")
|
|
|
|
const context = await recordApi.getContext(invoice.key)
|
|
|
|
expect(isFunction(context.referenceOptions)).toBeTruthy()
|
|
const result = await context.referenceOptions("customer")
|
|
expect(isArray(result)).toBeTruthy()
|
|
expect(result.length).toBe(0)
|
|
})
|
|
})
|