Improve test coverage for VersioningStrategy & add VERSIONING_STRATEGIES to constants.test.ts

Signed-off-by: Erik Engervall <erik.engervall@gmail.com>
This commit is contained in:
Erik Engervall
2021-04-21 20:53:41 +02:00
parent cd996e7a0d
commit 13906def32
2 changed files with 29 additions and 10 deletions
@@ -15,22 +15,23 @@
*/
import React from 'react';
import { render } from '@testing-library/react';
import { render, fireEvent } from '@testing-library/react';
import {
mockCalverProject,
mockSemverProject,
mockSearchCalver,
} from '../../test-helpers/test-helpers';
import { TEST_IDS } from '../../test-helpers/test-ids';
const mockNavigate = jest.fn();
jest.mock('react-router', () => ({
useNavigate: jest.fn(),
useNavigate: () => mockNavigate,
useLocation: jest.fn(() => ({
search: mockSearchCalver,
})),
}));
jest.mock('../../contexts/ProjectContext', () => ({
useProjectContext: jest.fn(() => mockCalverProject),
useProjectContext: jest.fn(() => mockSemverProject),
}));
import { VersioningStrategy } from './VersioningStrategy';
@@ -38,11 +39,25 @@ import { VersioningStrategy } from './VersioningStrategy';
describe('Repo', () => {
beforeEach(jest.clearAllMocks);
it('should render radio group', async () => {
const { getByTestId } = render(<VersioningStrategy />);
it('should render radio group with default values and handle changes', async () => {
const { getByLabelText } = render(<VersioningStrategy />);
expect(
getByTestId(TEST_IDS.form.versioningStrategy.radioGroup),
).toBeInTheDocument();
const radio1 = getByLabelText('Semantic versioning');
const radio2 = getByLabelText('Calendar versioning');
expect(radio1).toBeChecked();
expect(radio2).not.toBeChecked();
fireEvent.click(radio2);
expect(mockNavigate.mock.calls).toMatchInlineSnapshot(`
Array [
Array [
"?versioningStrategy=calver&owner=mock_owner&repo=mock_repo",
Object {
"replace": true,
},
],
]
`);
});
});
@@ -30,6 +30,10 @@ describe('constants', () => {
"minor": "minor",
"patch": "patch",
},
"VERSIONING_STRATEGIES": Object {
"calver": "calver",
"semver": "semver",
},
}
`);
});