Merge pull request 'feat(portal): add StatusBadge to appointment cards (GRO-1795)' (#26) from feature/gro-1165e-booking-status-badge into dev
CI / Test (push) Successful in 15s
CI / Lint & Typecheck (push) Successful in 17s
CI / Lint & Typecheck (pull_request) Successful in 18s
CI / Test (pull_request) Successful in 19s
CI / Build & Push Docker Image (push) Successful in 53s
CI / Build & Push Docker Image (pull_request) Successful in 47s
CI / Test (push) Successful in 15s
CI / Lint & Typecheck (push) Successful in 17s
CI / Lint & Typecheck (pull_request) Successful in 18s
CI / Test (pull_request) Successful in 19s
CI / Build & Push Docker Image (push) Successful in 53s
CI / Build & Push Docker Image (pull_request) Successful in 47s
Merge PR #26: feat(portal): add StatusBadge to appointment cards (GRO-1795)
This commit was merged in pull request #26.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
||||
import { render, screen, fireEvent, waitFor } from "@testing-library/react";
|
||||
import { parseTimeTo24Hour, isUpcoming, CustomerNotesSection, ConfirmationSection } from "../portal/sections/Appointments.tsx";
|
||||
import { parseTimeTo24Hour, isUpcoming, CustomerNotesSection, ConfirmationSection, StatusBadge } from "../portal/sections/Appointments.tsx";
|
||||
|
||||
const UPCOMING_APPT = {
|
||||
id: "appt-1",
|
||||
@@ -381,6 +381,66 @@ describe("ConfirmationSection", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("StatusBadge", () => {
|
||||
it("renders Confirmed for confirmed status", () => {
|
||||
render(<StatusBadge status="confirmed" />);
|
||||
expect(screen.getByText("Confirmed")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders Pending for pending status", () => {
|
||||
render(<StatusBadge status="pending" />);
|
||||
expect(screen.getByText("Pending")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders Waitlisted for waitlisted status", () => {
|
||||
render(<StatusBadge status="waitlisted" />);
|
||||
expect(screen.getByText("Waitlisted")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders Completed for completed status", () => {
|
||||
render(<StatusBadge status="completed" />);
|
||||
expect(screen.getByText("Completed")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders Cancelled for cancelled status", () => {
|
||||
render(<StatusBadge status="cancelled" />);
|
||||
expect(screen.getByText("Cancelled")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("falls back to status string for unknown status", () => {
|
||||
render(<StatusBadge status="custom-status" />);
|
||||
expect(screen.getByText("custom-status")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("uses correct CSS class for confirmed status", () => {
|
||||
render(<StatusBadge status="confirmed" />);
|
||||
const badge = screen.getByText("Confirmed").closest('span');
|
||||
expect(badge?.className).toContain("bg-green-100");
|
||||
expect(badge?.className).toContain("text-green-700");
|
||||
});
|
||||
|
||||
it("uses correct CSS class for waitlisted status", () => {
|
||||
render(<StatusBadge status="waitlisted" />);
|
||||
const badge = screen.getByText("Waitlisted").closest('span');
|
||||
expect(badge?.className).toContain("bg-blue-100");
|
||||
expect(badge?.className).toContain("text-blue-600");
|
||||
});
|
||||
|
||||
it("uses correct CSS class for pending status", () => {
|
||||
render(<StatusBadge status="pending" />);
|
||||
const badge = screen.getByText("Pending").closest('span');
|
||||
expect(badge?.className).toContain("bg-amber-100");
|
||||
expect(badge?.className).toContain("text-amber-600");
|
||||
});
|
||||
|
||||
it("uses fallback styling for unknown status", () => {
|
||||
render(<StatusBadge status="unknown" />);
|
||||
const badge = screen.getByText("unknown").closest('span');
|
||||
expect(badge?.className).toContain("bg-stone-100");
|
||||
expect(badge?.className).toContain("text-stone-600");
|
||||
});
|
||||
});
|
||||
|
||||
describe("RescheduleFlow dynamic time slots", () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
|
||||
Reference in New Issue
Block a user