* only fetch bookings of this month for weighted rr * test set up * only get bookings of current month * reverts test setup * first changes for weight adjustments * reset booking count + adjust calibration * depreciate weightAdjustment * get only bookings created this month * fix typo * make sure createdAt for hosts is correct * use earliest possibel date as fallback * add missing createdAt date to tests * fix typo * clean up changes in tests * fix typo * change end date to current date * fix: Fall back to empty host array when no hosts are found * fix: Restructure code a little * fixed test, incorrectly used now outdated var * perf: remove Dayjs from getLuckyUser * Refactor getHostsWithCalibration for optimised performance, intentionally break test as findMany is always an array * Better mock for host.findMany * Remove team-event-types.test.ts, move to appropriate package * TypeScript cannot auto-infer that an array is non-empty when assigning to a var * fix: Type Fixes and DistributionMethod enum add * Optimise tests * Added test to show that bookings made before a newHost was added affect the lucky user result * Throw error when the usersWithHighestPriority is empty, which should never happen --------- Co-authored-by: CarinaWolli <wollencarina@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com>
103 lines
3.0 KiB
TypeScript
103 lines
3.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { checkForEmptyAssignment } from "@calcom/lib/event-types/utils/checkForEmptyAssignment";
|
|
|
|
describe("Tests to Check if Event Types have empty Assignment", () => {
|
|
it("should return true if managed event type has no assigned users", () => {
|
|
expect(
|
|
checkForEmptyAssignment({
|
|
assignedUsers: [],
|
|
assignAllTeamMembers: false,
|
|
hosts: [{ userId: 101, isFixed: false, priority: 2, weight: 100, scheduleId: null }],
|
|
isManagedEventType: true,
|
|
})
|
|
).toBe(true);
|
|
});
|
|
it("should return true if non-managed event type has no hosts assigned", () => {
|
|
expect(
|
|
checkForEmptyAssignment({
|
|
assignedUsers: [
|
|
{
|
|
created: true,
|
|
owner: {
|
|
id: 101,
|
|
avatar: "avatar.svg",
|
|
email: "firstuser@cal.com",
|
|
membership: "OWNER",
|
|
name: "First user",
|
|
username: "firstuser",
|
|
profile: {
|
|
username: "firstuser",
|
|
upId: "usr-101",
|
|
id: null,
|
|
organization: null,
|
|
organizationId: null,
|
|
},
|
|
avatarUrl: null,
|
|
nonProfileUsername: null,
|
|
},
|
|
slug: "managedevent",
|
|
hidden: false,
|
|
},
|
|
],
|
|
assignAllTeamMembers: false,
|
|
hosts: [],
|
|
isManagedEventType: false,
|
|
})
|
|
).toBe(true);
|
|
});
|
|
it("should return false if assignAllTeamMembers is selected", () => {
|
|
expect(
|
|
checkForEmptyAssignment({
|
|
assignedUsers: [],
|
|
assignAllTeamMembers: true,
|
|
hosts: [],
|
|
isManagedEventType: false,
|
|
})
|
|
).toBe(false);
|
|
});
|
|
it("should return false if non-managed event type has hosts assigned", () => {
|
|
expect(
|
|
checkForEmptyAssignment({
|
|
assignedUsers: [],
|
|
assignAllTeamMembers: false,
|
|
hosts: [{ userId: 101, isFixed: false, priority: 2, weight: 100, scheduleId: null }],
|
|
isManagedEventType: false,
|
|
})
|
|
).toBe(false);
|
|
});
|
|
it("should return false if managed event type has assigned users", () => {
|
|
expect(
|
|
checkForEmptyAssignment({
|
|
assignedUsers: [
|
|
{
|
|
created: true,
|
|
owner: {
|
|
id: 101,
|
|
avatar: "avatar.svg",
|
|
email: "firstuser@cal.com",
|
|
membership: "OWNER",
|
|
name: "First user",
|
|
username: "firstuser",
|
|
profile: {
|
|
username: "firstuser",
|
|
upId: "usr-101",
|
|
id: null,
|
|
organization: null,
|
|
organizationId: null,
|
|
},
|
|
avatarUrl: null,
|
|
nonProfileUsername: null,
|
|
},
|
|
slug: "managedevent",
|
|
hidden: false,
|
|
},
|
|
],
|
|
assignAllTeamMembers: false,
|
|
hosts: [],
|
|
isManagedEventType: true,
|
|
})
|
|
).toBe(false);
|
|
});
|
|
});
|