64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { submissionWebhookMessage } from "@/lib/submission-webhook";
|
|
import type {
|
|
NormalizedSubmissionAnswer,
|
|
SubmissionQuestion,
|
|
} from "@/lib/submission-intake";
|
|
|
|
const questions: SubmissionQuestion[] = [
|
|
{
|
|
id: "name",
|
|
type: "text",
|
|
label: "Character name",
|
|
required: true,
|
|
options: [],
|
|
allowOther: false,
|
|
},
|
|
];
|
|
|
|
const answers: NormalizedSubmissionAnswer[] = [
|
|
{
|
|
questionId: "name",
|
|
value: "Erika",
|
|
displayValue: "Erika",
|
|
},
|
|
];
|
|
|
|
test("uses the configured template", () => {
|
|
expect(submissionWebhookMessage({
|
|
template: "New answer: {1} by {username} ({id})",
|
|
isUpdate: false,
|
|
userName: "Gunshiz",
|
|
discordId: "123",
|
|
questions,
|
|
answers,
|
|
oldAnswersByQuestionId: {},
|
|
})).toBe("New answer: Erika by Gunshiz (123)");
|
|
});
|
|
|
|
describe("default templates", () => {
|
|
test("sends a new-submission message when its template is blank", () => {
|
|
expect(submissionWebhookMessage({
|
|
template: null,
|
|
isUpdate: false,
|
|
userName: "Gunshiz",
|
|
discordId: "123",
|
|
questions,
|
|
answers,
|
|
oldAnswersByQuestionId: {},
|
|
})).toBe("New submission from Gunshiz (123).");
|
|
});
|
|
|
|
test("sends an update message when its template is blank", () => {
|
|
expect(submissionWebhookMessage({
|
|
template: " ",
|
|
isUpdate: true,
|
|
userName: "Gunshiz",
|
|
discordId: "123",
|
|
questions,
|
|
answers,
|
|
oldAnswersByQuestionId: { name: "Old name" },
|
|
})).toContain("Submission updated by Gunshiz (123).");
|
|
});
|
|
});
|