/* global describe, it, expect */
import React from 'react'
import { render, screen } from '@testing-library/react'
import * as ContentCard from './ContentCard'
import { Badge } from '../Badge'
function renderDefault() {
return render(
UX Research & Design InterviewBeginnerProfessional
Practice explaining your UX research process.
Sample Questions:Walk me through your research methodology.Describe a challenging project you worked on.Topics Covered:,
)
}
describe('ContentCard', () => {
describe('Rendering', () => {
it('renders root container', () => {
const { container } = renderDefault()
expect(container.firstChild).toBeDefined()
})
it('renders title as h2 element', () => {
renderDefault()
const title = screen.getByRole('heading', { level: 2 })
expect(title.textContent).toBe('UX Research & Design Interview')
})
it('renders badge bar with children', () => {
renderDefault()
expect(screen.getByText('Beginner')).toBeDefined()
expect(screen.getByText('Professional')).toBeDefined()
})
it('renders body content', () => {
renderDefault()
expect(screen.getByText('Practice explaining your UX research process.')).toBeDefined()
})
it('renders sections with section titles as h3', () => {
renderDefault()
const sectionTitles = screen.getAllByRole('heading', { level: 3 })
expect(sectionTitles.length).toBe(2)
expect(sectionTitles[0].textContent).toBe('Sample Questions:')
expect(sectionTitles[1].textContent).toBe('Topics Covered:')
})
it('renders separator as hr element', () => {
const { container } = renderDefault()
expect(container.querySelector('hr')).toBeDefined()
})
it('renders list with list items', () => {
renderDefault()
const items = screen.getAllByRole('listitem')
expect(items.length).toBeGreaterThanOrEqual(2)
expect(screen.getByText('Walk me through your research methodology.')).toBeDefined()
})
})
describe('Variants', () => {
it('applies outline variant by default', () => {
const { container } = renderDefault()
const root = container.firstChild as HTMLElement
expect(root.className).toContain('content-card')
})
it('applies elevated variant when specified', () => {
const { container } = render(
Elevated,
)
expect(container.firstChild).toBeDefined()
})
it('applies flat variant when specified', () => {
const { container } = render(
Flat,
)
expect(container.firstChild).toBeDefined()
})
it('applies size md by default', () => {
const { container } = renderDefault()
expect(container.firstChild).toBeDefined()
})
it('applies size sm when specified', () => {
const { container } = render(
Small,
)
expect(container.firstChild).toBeDefined()
})
})
describe('Composition', () => {
it('renders Badge components inside BadgeBar', () => {
render(
Tag 1Tag 2,
)
expect(screen.getByText('Tag 1')).toBeDefined()
expect(screen.getByText('Tag 2')).toBeDefined()
})
it('renders arbitrary content in Body slot', () => {
render(