Files
calendar/packages/features/users/lib/getRoutedUsers.test.ts
T
Benny JooandGitHub bb68cd73ef refactor: circular deps between app store and lib [6] (#23971)
* move delegation credential repository to features

* mv credential repository to features

* update imports

* mv

* fix

* fix

* fix

* fix

* fix

* update imports

* update imports

* update eslint rule

* fix

* fix

* mv getConnectedDestinationCalendars

* fix import errors

* mv getCalendarsEvents

* remove getUsersCredentials

* wip

* revert eslint rule change for now

* fix type checks

* fix

* format

* cleanup

* fix

* fix

* fix

* fix

* fix tests

* migrate getUserAvailability

* migrate

* fix tests

* fix type checks

* fix

* fix

* migrate crmManager

* update imports

* migrate raqbUtils to appstore

* migrate getLuckyUser to features

* migrate findTeamMembersMatchingAttributeLogic to appstore

* update imports

* fix

* fix

* fix test

* fix unit tests

* fix

* fix

* add eslint config
2025-10-09 14:02:12 +00:00

71 lines
2.5 KiB
TypeScript

import { describe, it, expect, vi } from "vitest";
import { getRoutedUsersWithContactOwnerAndFixedUsers } from "./getRoutedUsers";
vi.mock("@calcom/prisma", () => {
return {
default: vi.fn(),
};
});
describe("getRoutedUsersWithContactOwnerAndFixedUsers", () => {
const users = [
{ id: 1, email: "user1@example.com", isFixed: false },
{ id: 2, email: "user2@example.com", isFixed: true },
{ id: 3, email: "user3@example.com", isFixed: false },
{ id: 4, email: "owner@example.com", isFixed: false },
];
const usersWithoutFixedHosts = users.map((user) => ({ ...user, isFixed: false }));
it("should return all users when routedTeamMemberIds is null", () => {
const result = getRoutedUsersWithContactOwnerAndFixedUsers({
routedTeamMemberIds: null,
users,
contactOwnerEmail: "owner@example.com",
});
expect(result).toEqual(users);
});
it("should return all users when routedTeamMemberIds is empty - We don't want to enter a scenario where we have no team members to be booked", () => {
const result = getRoutedUsersWithContactOwnerAndFixedUsers({
routedTeamMemberIds: [],
users,
contactOwnerEmail: "owner@example.com",
});
expect(result).toEqual(users);
});
it("should filter users based on routedTeamMemberIds, isFixed, and contactOwnerEmail", () => {
const result = getRoutedUsersWithContactOwnerAndFixedUsers({
routedTeamMemberIds: [1, 3],
users,
contactOwnerEmail: "owner@example.com",
});
expect(result).toEqual([
{ id: 1, email: "user1@example.com", isFixed: false },
{ id: 2, email: "user2@example.com", isFixed: true },
{ id: 3, email: "user3@example.com", isFixed: false },
{ id: 4, email: "owner@example.com", isFixed: false },
]);
});
it("should return an empty array when neither fixed, nor routedTeamMemberIds, nor contactOwnerEmail match", () => {
const result = getRoutedUsersWithContactOwnerAndFixedUsers({
routedTeamMemberIds: [5],
users: usersWithoutFixedHosts,
contactOwnerEmail: "nonexistent@example.com",
});
expect(result).toEqual([]);
});
it("should return fixed hosts even if routedTeamMemberIds and contactOwnerEmail are invalid ", () => {
const result = getRoutedUsersWithContactOwnerAndFixedUsers({
routedTeamMemberIds: [5],
users,
contactOwnerEmail: "nonexistent@example.com",
});
expect(result).toEqual([{ id: 2, email: "user2@example.com", isFixed: true }]);
});
});