Improved VisitsTable test

This commit is contained in:
Alejandro Celaya 2021-06-13 11:49:53 +02:00
parent 151175dc70
commit 1cf96c7212

View file

@ -28,10 +28,20 @@ describe('<VisitsTable />', () => {
const createWrapper = (visits: NormalizedVisit[], selectedVisits: NormalizedVisit[] = []) => wrapperFactory(
{ visits, selectedVisits },
);
const createOrphanVisitsWrapper = (isOrphanVisits: boolean) => wrapperFactory({ isOrphanVisits });
const createOrphanVisitsWrapper = (isOrphanVisits: boolean, version: SemVer) => wrapperFactory({
isOrphanVisits,
selectedServer: Mock.of<ReachableServer>({ printableVersion: version, version }),
});
const createServerVersionWrapper = (version: SemVer) => wrapperFactory({
selectedServer: Mock.of<ReachableServer>({ printableVersion: version, version }),
});
const createWrapperWithBots = () => wrapperFactory({
selectedServer: Mock.of<ReachableServer>({ printableVersion: '2.7.0', version: '2.7.0' }),
visits: [
Mock.of<NormalizedVisit>({ potentialBot: false }),
Mock.of<NormalizedVisit>({ potentialBot: true }),
],
});
afterEach(jest.resetAllMocks);
afterEach(() => wrapper?.unmount());
@ -146,10 +156,12 @@ describe('<VisitsTable />', () => {
});
it.each([
[ true, 8 ],
[ false, 7 ],
])('displays proper amount of columns for orphan and non-orphan visits', (isOrphanVisits, expectedCols) => {
const wrapper = createOrphanVisitsWrapper(isOrphanVisits);
[ true, '2.6.0' as SemVer, 8 ],
[ false, '2.6.0' as SemVer, 7 ],
[ true, '2.7.0' as SemVer, 9 ],
[ false, '2.7.0' as SemVer, 8 ],
])('displays proper amount of columns for orphan and non-orphan visits', (isOrphanVisits, version, expectedCols) => {
const wrapper = createOrphanVisitsWrapper(isOrphanVisits, version);
const rowsWithColspan = wrapper.find('[colSpan]');
const cols = wrapper.find('th');
@ -157,4 +169,12 @@ describe('<VisitsTable />', () => {
expect(rowsWithColspan).toHaveLength(2);
rowsWithColspan.forEach((row) => expect(row.prop('colSpan')).toEqual(expectedCols));
});
it('displays bots icon when a visit is a potential bot', () => {
const wrapper = createWrapperWithBots();
const rows = wrapper.find('tbody').find('tr');
expect(rows.at(0).find('td').at(1).text()).not.toContain('FontAwesomeIcon');
expect(rows.at(1).find('td').at(1).text()).toContain('FontAwesomeIcon');
});
});