111 lines
4.3 KiB
JavaScript
111 lines
4.3 KiB
JavaScript
import { validateActions, validateTrigger } from "../src/templateApi/validate"
|
|
import { createValidActionsAndTriggers } from "./specHelpers"
|
|
|
|
describe("templateApi actions validation", () => {
|
|
it("should return no errors when all actions are valid", () => {
|
|
const { allActions } = createValidActionsAndTriggers()
|
|
const result = validateActions(allActions)
|
|
expect(result).toEqual([])
|
|
})
|
|
|
|
it("should return error for empty behaviourName", () => {
|
|
const { allActions, logMessage } = createValidActionsAndTriggers()
|
|
logMessage.behaviourName = ""
|
|
const result = validateActions(allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("behaviourName")
|
|
})
|
|
|
|
it("should return error for empty behaviourSource", () => {
|
|
const { allActions, logMessage } = createValidActionsAndTriggers()
|
|
logMessage.behaviourSource = ""
|
|
const result = validateActions(allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("behaviourSource")
|
|
})
|
|
|
|
it("should return error for empty name", () => {
|
|
const { allActions, logMessage } = createValidActionsAndTriggers()
|
|
logMessage.name = ""
|
|
const result = validateActions(allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("name")
|
|
})
|
|
|
|
it("should return error for duplicate name", () => {
|
|
const {
|
|
allActions,
|
|
logMessage,
|
|
measureCallTime,
|
|
} = createValidActionsAndTriggers()
|
|
logMessage.name = measureCallTime.name
|
|
const result = validateActions(allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("")
|
|
})
|
|
})
|
|
|
|
describe("tempalteApi triggers validation", () => {
|
|
it("should return error when actionName is empty", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.actionName = ""
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("actionName")
|
|
})
|
|
|
|
it("should return error when eventName is empty", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.eventName = ""
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("eventName")
|
|
})
|
|
|
|
it("should return error when eventName does not exist in allowed events", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.eventName = "non existant event name"
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("eventName")
|
|
})
|
|
|
|
it("should return error when actionName does not exist in supplied actions", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.actionName = "non existent action name"
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("actionName")
|
|
})
|
|
|
|
it("should return error when optionsCreator is invalid javascript", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.optionsCreator = "this is nonsense"
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("optionsCreator")
|
|
})
|
|
|
|
it("should return error when condition is invalid javascript", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.condition = "this is nonsense"
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(1)
|
|
expect(result[0].field).toEqual("condition")
|
|
})
|
|
|
|
it("should not return error when condition is empty", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.condition = ""
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(0)
|
|
})
|
|
|
|
it("should not return error when optionsCreator is empty", () => {
|
|
const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers()
|
|
logOnErrorTrigger.optionsCreator = ""
|
|
const result = validateTrigger(logOnErrorTrigger, allActions)
|
|
expect(result.length).toBe(0)
|
|
})
|
|
})
|