Fix/wipe vital app revision (#2983)
* Fixes for both apps regarding event update/delete * Added wipe my cal test * Added eslint ignore * Fix test * Merge both test into a single test * remove duplicated line * Using prisma from calcom pkg and removing optional chaining from current invocations Co-authored-by: Peer Richelsen <peeroke@gmail.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
8 files changed
+88
-40
No files matched your search
@@ -61,7 +61,7 @@ const handler = async (
|
||||
if (session?.user?.id) {
|
||||
userOwner = await findUserDataByUserId(session?.user.id);
|
||||
} else {
|
||||
return res.status(501);
|
||||
return res.status(501).end();
|
||||
}
|
||||
|
||||
const bookingToReschedule = await prisma.booking.findFirst({
|
||||
@@ -235,10 +235,10 @@ function validate(
|
||||
if (error instanceof ZodError && error?.name === "ZodError") {
|
||||
return res.status(400).json(error?.issues);
|
||||
}
|
||||
return res.status(402);
|
||||
return res.status(402).end();
|
||||
}
|
||||
} else {
|
||||
return res.status(405);
|
||||
return res.status(405).end();
|
||||
}
|
||||
await handler(req, res);
|
||||
};
|
||||
|
||||
@@ -21,9 +21,11 @@ export const createBookingsFixture = (page: Page) => {
|
||||
userId: number,
|
||||
username: string | null,
|
||||
eventTypeId = -1,
|
||||
{ rescheduled = false, paid = false, status = "ACCEPTED" }: Partial<Prisma.BookingCreateInput> = {}
|
||||
{ rescheduled = false, paid = false, status = "ACCEPTED" }: Partial<Prisma.BookingCreateInput> = {},
|
||||
startDateParam?: Date,
|
||||
endDateParam?: Date
|
||||
) => {
|
||||
const startDate = dayjs().add(1, "day").toDate();
|
||||
const startDate = startDateParam || dayjs().add(1, "day").toDate();
|
||||
const seed = `${username}:${dayjs(startDate).utc().format()}:${new Date().getTime()}`;
|
||||
const uid = translator.fromUUID(uuidv5(seed, uuidv5.URL));
|
||||
const booking = await prisma.booking.create({
|
||||
@@ -31,7 +33,7 @@ export const createBookingsFixture = (page: Page) => {
|
||||
uid: uid,
|
||||
title: "30min",
|
||||
startTime: startDate,
|
||||
endTime: dayjs().add(1, "day").add(30, "minutes").toDate(),
|
||||
endTime: endDateParam || dayjs().add(1, "day").add(30, "minutes").toDate(),
|
||||
user: {
|
||||
connect: {
|
||||
id: userId,
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
import { expect } from "@playwright/test";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
import prisma from "@calcom/prisma";
|
||||
|
||||
import { test } from "../../lib/fixtures";
|
||||
|
||||
test.describe.configure({ mode: "parallel" });
|
||||
|
||||
test.describe("Wipe my Cal App Test", () => {
|
||||
test("Browse upcoming bookings and validate button shows and triggering wipe my cal button", async ({
|
||||
page,
|
||||
users,
|
||||
bookings,
|
||||
}) => {
|
||||
const pro = await users.create();
|
||||
const [eventType] = pro.eventTypes;
|
||||
await prisma.credential.create({
|
||||
data: {
|
||||
key: {},
|
||||
type: "wipemycal_other",
|
||||
userId: pro.id,
|
||||
appId: "wipe-my-cal",
|
||||
},
|
||||
});
|
||||
await bookings.create(
|
||||
pro.id,
|
||||
pro.username,
|
||||
eventType.id,
|
||||
{},
|
||||
dayjs().endOf("day").subtract(29, "minutes").toDate(),
|
||||
dayjs().endOf("day").toDate()
|
||||
);
|
||||
await prisma.credential.create({
|
||||
data: {
|
||||
key: {},
|
||||
type: "wipemycal_other",
|
||||
userId: pro.id,
|
||||
appId: "wipe-my-cal",
|
||||
},
|
||||
});
|
||||
|
||||
await bookings.create(pro.id, pro.username, eventType.id, {});
|
||||
await bookings.create(pro.id, pro.username, eventType.id, {});
|
||||
await pro.login();
|
||||
await page.goto("/bookings/upcoming");
|
||||
await expect(page.locator("data-testid=wipe-today-button")).toBeVisible();
|
||||
|
||||
const totalUserBookings = await prisma.booking.findMany({
|
||||
where: {
|
||||
userId: pro.id,
|
||||
},
|
||||
});
|
||||
expect(totalUserBookings?.length).toBe(3);
|
||||
await page.locator("data-testid=wipe-today-button").click();
|
||||
await page.locator("data-testid=send_request").click();
|
||||
// eslint-disable-next-line playwright/no-wait-for-timeout
|
||||
await page.waitForTimeout(250);
|
||||
const totalUserBookingsCancelled = await prisma.booking.findMany({
|
||||
where: {
|
||||
userId: pro.id,
|
||||
status: "CANCELLED",
|
||||
},
|
||||
});
|
||||
|
||||
await expect(totalUserBookingsCancelled?.length).toBe(1);
|
||||
await users.deleteAll();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user