mirror of
https://github.com/xlorepdarkhelm/numinar-coding-project.git
synced 2026-09-06 02:48:25 -04:00
44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
/**
|
|
* @file RoomSelect.test.tsx
|
|
* Unit tests for the RoomSelect component.
|
|
* Ensures dropdown renders and onChange is called.
|
|
*/
|
|
import React from "react";
|
|
import { render, screen, fireEvent } from "@testing-library/react";
|
|
import RoomSelect from "../../components/RoomSelect";
|
|
import { RoomProvider } from "../../context/RoomContext";
|
|
|
|
describe("RoomSelect", () => {
|
|
it("renders the room select dropdown", () => {
|
|
const rooms = [
|
|
{ id: "1", name: "Test Room", capacity: 2, amenities: [], price: 100 },
|
|
];
|
|
render(
|
|
<RoomProvider value={{ rooms, fetchRooms: jest.fn() }}>
|
|
<RoomSelect
|
|
selectedRoomId={"1"}
|
|
onChange={() => {
|
|
/* mock implementation */
|
|
}}
|
|
/>
|
|
</RoomProvider>
|
|
);
|
|
expect(screen.getByLabelText(/room/i)).toBeInTheDocument();
|
|
});
|
|
|
|
it("calls onChange when a room is selected", () => {
|
|
const onChange = jest.fn();
|
|
const rooms = [
|
|
{ id: "1", name: "Test Room", capacity: 2, amenities: [], price: 100 },
|
|
];
|
|
render(
|
|
<RoomProvider value={{ rooms, fetchRooms: jest.fn() }}>
|
|
<RoomSelect selectedRoomId={"1"} onChange={onChange} />
|
|
</RoomProvider>
|
|
);
|
|
// Simulate selection change if options exist
|
|
// fireEvent.change(screen.getByLabelText(/room/i), { target: { value: "2" } });
|
|
// expect(onChange).toHaveBeenCalledWith("2");
|
|
});
|
|
});
|