85 lines
2.4 KiB
TypeScript
85 lines
2.4 KiB
TypeScript
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
import prismaMock from "../../../../tests/libs/__mocks__/prismaMock";
|
|
|
|
import { describe, it, expect } from "vitest";
|
|
|
|
import { WorkflowRepository } from "./workflow";
|
|
|
|
describe("WorkflowRepository", () => {
|
|
describe("getVerifiedEmails", () => {
|
|
it("should return the email of the user", async () => {
|
|
prismaMock.secondaryEmail.findMany.mockResolvedValue([]);
|
|
prismaMock.verifiedEmail.findMany.mockResolvedValue([]);
|
|
|
|
const emails = await WorkflowRepository.getVerifiedEmails({
|
|
userEmail: "user@example.com",
|
|
userId: 1,
|
|
});
|
|
expect(emails).toEqual(["user@example.com"]);
|
|
});
|
|
|
|
it("should return the email of the user and verified secondary emails", async () => {
|
|
prismaMock.verifiedEmail.findMany.mockResolvedValue([]);
|
|
prismaMock.secondaryEmail.findMany.mockResolvedValue([
|
|
{
|
|
id: 101,
|
|
email: "secondary@example.com",
|
|
emailVerified: new Date(),
|
|
},
|
|
]);
|
|
|
|
const emails = await WorkflowRepository.getVerifiedEmails({
|
|
userEmail: "user@example.com",
|
|
userId: 1,
|
|
});
|
|
expect(emails).toEqual(["user@example.com", "secondary@example.com"]);
|
|
});
|
|
|
|
it("should return the email of the user and verified secondary emails from the team", async () => {
|
|
prismaMock.verifiedEmail.findMany.mockResolvedValue([]);
|
|
prismaMock.secondaryEmail.findMany.mockResolvedValue([
|
|
{
|
|
id: 101,
|
|
email: "secondary@example.com",
|
|
emailVerified: new Date(),
|
|
},
|
|
]);
|
|
|
|
prismaMock.user.findMany.mockResolvedValue([
|
|
{
|
|
id: 1,
|
|
email: "organizer@example.com",
|
|
},
|
|
{
|
|
id: 2,
|
|
email: "teammember1@example.com",
|
|
secondaryEmails: [],
|
|
},
|
|
{
|
|
id: 3,
|
|
email: "teammember2@example.com",
|
|
secondaryEmails: [
|
|
{
|
|
email: "secondary2@example.com",
|
|
emailVerified: new Date(),
|
|
},
|
|
],
|
|
},
|
|
]);
|
|
|
|
const emails = await WorkflowRepository.getVerifiedEmails({
|
|
userEmail: "user@example.com",
|
|
userId: 1,
|
|
teamId: 1,
|
|
});
|
|
expect(emails).toEqual([
|
|
"user@example.com",
|
|
"secondary@example.com",
|
|
"teammember1@example.com",
|
|
"teammember2@example.com",
|
|
"secondary2@example.com",
|
|
]);
|
|
});
|
|
});
|
|
});
|