70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
import { action, iterateActionTimes } from "./helpers"
|
|
import { isUndefined, union } from "lodash"
|
|
|
|
const createClient = (apis, getState) => async i => {
|
|
const client = apis.recordApi.getNew("/clients", "client")
|
|
client.FamilyName = "Humperdink"
|
|
client.Address1 = `${i} Mainitucetts Avenue`
|
|
client.Address2 = "Longerton Road South"
|
|
client.Address3 = "Chalico City"
|
|
client.Address4 = "Northern Humranistan"
|
|
client.Postcode = "BY71 5FR"
|
|
client.CreatedDate = new Date()
|
|
|
|
const state = getState()
|
|
if (isUndefined(state.clientKeys)) state.clientKeys = []
|
|
state.clientKeys.push(client.key())
|
|
|
|
await apis.recordApi.save(client)
|
|
|
|
return client.key()
|
|
}
|
|
|
|
const listClients = (apis, getState) => async () => {
|
|
const clients = await apis.viewApi.listItems("/clients/default")
|
|
const state = getState()
|
|
if (state.clientKeys.length !== clients.length) {
|
|
throw new Error(
|
|
"list CLients, expected " +
|
|
state.clientKeys.length.toString() +
|
|
" clients, actual " +
|
|
clients.length.toString()
|
|
)
|
|
}
|
|
}
|
|
|
|
export default apis => {
|
|
const state = {}
|
|
const getState = () => state
|
|
|
|
const noOfRecords = 10000
|
|
const recordsPerIteration = 10
|
|
const noOfIterations = noOfRecords / recordsPerIteration
|
|
|
|
const actionsInOneIteration = () => [
|
|
action(
|
|
"Create client",
|
|
createClient(apis, getState),
|
|
iterateActionTimes(recordsPerIteration)
|
|
),
|
|
|
|
action("List Clients", listClients(apis, getState)),
|
|
]
|
|
|
|
let actions = []
|
|
for (let index = 0; index < noOfIterations; index++) {
|
|
actions = union(actions, actionsInOneIteration())
|
|
}
|
|
|
|
let actionIndex = 0
|
|
|
|
return () => {
|
|
if (actionIndex == actions.length) {
|
|
return { done: true }
|
|
}
|
|
const result = { action: actions[actionIndex], done: false }
|
|
actionIndex++
|
|
return result
|
|
}
|
|
}
|