import React from 'react'
import { fireEvent, render, screen } from '@testing-library/react'
import CookieModule, {
CookieModuleProps
} from '../../../src/components/molecules/CookieModule'
import CookieConsent, {
ConsentContext,
ConsentProviderValue,
CookieConsentStatus
} from '../../../src/providers/CookieConsent'
import { useGdprMetadata } from '../../../src/hooks/useGdprMetadata'
const cookieProps: CookieModuleProps = {
title: 'Title',
desc: 'Description',
cookieName: 'CookieName'
}
jest.resetModules()
describe('CookieModule', () => {
it('renders correctly without crashing', () => {
const { container } = render(
)
const moduleWrapper = container.querySelector('.wrapper')
const moduleHeader = moduleWrapper.querySelector('.header')
const moduleSwitch = moduleWrapper.querySelector('.switch')
const moduleDesc = moduleWrapper.querySelector('.description')
expect(moduleWrapper).toBeInTheDocument()
expect(moduleHeader).toBeInTheDocument()
expect(moduleSwitch).toBeInTheDocument()
expect(moduleDesc).toBeInTheDocument()
})
const cookieConsentStatusApproved = {
[cookieProps.cookieName]: CookieConsentStatus.APPROVED
}
const testValue: ConsentProviderValue = {
cookies: useGdprMetadata().optionalCookies,
cookieConsentStatus: cookieConsentStatusApproved,
setConsentStatus: jest.fn(),
resetConsentStatus: jest.fn()
}
it('initializes switch correctly', () => {
// CookieConsentStatus not available
const { container } = render(
)
const switchInput = container.querySelector('input')
expect(switchInput).toHaveProperty('checked', true)
})
})