test("Базовый chain API для действий", () => { constctxSchema = { name:types.string.required("anon"), age:types.number.required(18), } typeCtxSchema = typeofctxSchema
constactions = createActionsConfig<CtxSchema, "guest" | "user">((process) => ({ guest:process() .action(({ context }) => ({ name:context.name, age:context.age + 1 })) .success(({ update, data }) => { expect(data.name, "data.name должен быть строкой").toBeTypeOf("string") expect(data.age, "data.age должен быть числом").toBeTypeOf("number") update({ name:data.name, age:data.age }) }) .error(({ update, error }) => { expect(error, "error должен быть определён").toBeDefined() update({ name:"error" }) }), user:process().action(({ context }) => ({ name:context.name, age:context.age })), }))
expect(typeofactions.guest?.success, "Метод success должен быть функцией").toBe("function") expect(typeofactions.guest?.error, "Метод error должен быть функцией").toBe("function") expect(typeofactions.user?.action, "Метод action должен быть функцией").toBe("function") })
Тип билдера для декларации набора процессов автомата.
Позволяет создавать типизированные процессы с удобным API.
Example