import React from "react"
import { render, screen } from "@testing-library/react"
import "@testing-library/jest-dom"
import { NewsletterList } from "../NewsletterList"
import { Newsletter } from "@/lib/api"
// Mock the child component to isolate the list component's behavior
jest.mock("../NewsletterCard", () => ({
NewsletterCard: ({ newsletter }: { newsletter: Newsletter }) => (
{newsletter.name}
),
}))
const mockNewsletters: Newsletter[] = [
{
id: 1,
name: "Newsletter One",
is_active: true,
senders: [],
entries_count: 10,
},
{
id: 2,
name: "Newsletter Two",
is_active: true,
senders: [],
entries_count: 5,
},
]
describe("NewsletterList", () => {
it("renders a list of newsletter cards", () => {
render( {}} />)
// Check that both newsletters are rendered
expect(screen.getByText("Newsletter One")).toBeInTheDocument()
expect(screen.getByText("Newsletter Two")).toBeInTheDocument()
expect(screen.getByTestId("newsletter-card-1")).toBeInTheDocument()
expect(screen.getByTestId("newsletter-card-2")).toBeInTheDocument()
})
it("renders nothing when the newsletter list is empty", () => {
const { container } = render( {}} />)
// The main div should be empty
expect(container.firstChild).toBeEmptyDOMElement()
})
})