import { render } from '@testing-library/react';
import axe from '../../../../../axe-helper';
import 'jest-styled-components';
import React from 'react';
import { FIVE_STAR_ID } from './ratings/FiveStar';
import { FOUR_HALF_STAR_ID } from './ratings/FourHalfStar';
import { FOUR_STAR_ID } from './ratings/FourStar';
import { ONE_HALF_STAR_ID } from './ratings/OneHalfStar';
import { ONE_STAR_ID } from './ratings/OneStar';
import { THREE_HALF_STAR_ID } from './ratings/ThreeHalfStar';
import { THREE_STAR_ID } from './ratings/ThreeStar';
import { TWO_HALF_STAR_ID } from './ratings/TwoHalfStar';
import { TWO_STAR_ID } from './ratings/TwoStar';
import { ZERO_STAR_ID } from './ratings/ZeroStar';
import Stars from './Stars';
describe('', () => {
it('renders default 5 stars rating without a11y violations', async () => {
const { container } = render();
const results = await axe(container.innerHTML);
expect(results).toHaveNoViolations();
expect(container).toMatchSnapshot();
});
describe('Ratings', () => {
const { container, rerender } = render();
it.each`
rating | ID
${0} | ${ZERO_STAR_ID}
${1} | ${ONE_STAR_ID}
${1.5} | ${ONE_HALF_STAR_ID}
${2} | ${TWO_STAR_ID}
${2.5} | ${TWO_HALF_STAR_ID}
${3} | ${THREE_STAR_ID}
${3.5} | ${THREE_HALF_STAR_ID}
${4} | ${FOUR_STAR_ID}
${4.5} | ${FOUR_HALF_STAR_ID}
${5} | ${FIVE_STAR_ID}
`('renders the given rating: $rating', async ({ rating, ID }) => {
rerender();
expect(container.querySelector(`#${ID}`)).toBeTruthy();
});
});
});