import React from 'react' import { render } from '@testing-library/react' import Availability from './Availability' import { useStaticQuery } from 'gatsby' import data from '../../../jest/__fixtures__/meta.json' describe('Availability', () => { it('renders correctly from data file values', () => { useStaticQuery.mockImplementation(() => ({ ...data })) const { container } = render() expect(container.firstChild).toBeInTheDocument() }) it('renders correctly when status: true', () => { useStaticQuery.mockImplementationOnce(() => { return { metaYaml: { availability: { status: true, available: 'I am available.', unavailable: 'Not available.' } } } }) const { container } = render() expect(container.firstChild).toBeInTheDocument() expect(container.firstChild).toHaveTextContent('I am available.') }) it('renders correctly when status: false', () => { useStaticQuery.mockImplementationOnce(() => { return { metaYaml: { availability: { status: false, available: 'I am available.', unavailable: 'Not available.' } } } }) const { container } = render() expect(container.firstChild).toBeInTheDocument() expect(container.firstChild).toHaveTextContent('Not available.') }) it('can be hidden', () => { const { container } = render() expect(container.firstChild).not.toBeInTheDocument() }) })