mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-04-21 05:56:20 +00:00
Migrate more tests to shoehorn
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
import { screen } from '@testing-library/react';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { DropdownBtnMenuProps } from '../../src/utils/DropdownBtnMenu';
|
||||
import { DropdownBtnMenu } from '../../src/utils/DropdownBtnMenu';
|
||||
import { renderWithEvents } from '../__helpers__/setUpTest';
|
||||
|
||||
describe('<DropdownBtnMenu />', () => {
|
||||
const setUp = (props: Partial<DropdownBtnMenuProps> = {}) => renderWithEvents(
|
||||
<DropdownBtnMenu {...Mock.of<DropdownBtnMenuProps>({ toggle: jest.fn(), ...props })}>the children</DropdownBtnMenu>,
|
||||
<DropdownBtnMenu {...fromPartial<DropdownBtnMenuProps>({ toggle: jest.fn(), ...props })}>
|
||||
the children
|
||||
</DropdownBtnMenu>,
|
||||
);
|
||||
|
||||
it('renders expected components', () => {
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { parseISO } from 'date-fns';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import type { DateInputProps } from '../../../src/utils/dates/DateInput';
|
||||
import { DateInput } from '../../../src/utils/dates/DateInput';
|
||||
import { renderWithEvents } from '../../__helpers__/setUpTest';
|
||||
|
||||
describe('<DateInput />', () => {
|
||||
const setUp = (props: Partial<DateInputProps> = {}) => renderWithEvents(
|
||||
<DateInput {...Mock.of<DateInputProps>(props)} />,
|
||||
<DateInput {...fromPartial<DateInputProps>(props)} />,
|
||||
);
|
||||
|
||||
it('shows calendar icon when input is not clearable', () => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { screen, waitFor } from '@testing-library/react';
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { DateRangeSelectorProps } from '../../../src/utils/dates/DateRangeSelector';
|
||||
import { DateRangeSelector } from '../../../src/utils/dates/DateRangeSelector';
|
||||
import type { DateInterval } from '../../../src/utils/helpers/dateIntervals';
|
||||
@@ -10,7 +10,7 @@ describe('<DateRangeSelector />', () => {
|
||||
const setUp = async (props: Partial<DateRangeSelectorProps> = {}) => {
|
||||
const result = renderWithEvents(
|
||||
<DateRangeSelector
|
||||
{...Mock.of<DateRangeSelectorProps>(props)}
|
||||
{...fromPartial<DateRangeSelectorProps>(props)}
|
||||
defaultText="Default text"
|
||||
onDatesChange={onDatesChange}
|
||||
/>,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { SemVer, Versions } from '../../../src/utils/helpers/version';
|
||||
import { versionMatch } from '../../../src/utils/helpers/version';
|
||||
import type { Empty } from '../../../src/utils/utils';
|
||||
@@ -6,19 +6,19 @@ import type { Empty } from '../../../src/utils/utils';
|
||||
describe('version', () => {
|
||||
describe('versionMatch', () => {
|
||||
it.each([
|
||||
[undefined, Mock.all<Versions>(), false],
|
||||
[null, Mock.all<Versions>(), false],
|
||||
['' as Empty, Mock.all<Versions>(), false],
|
||||
[[], Mock.all<Versions>(), false],
|
||||
['2.8.3' as SemVer, Mock.all<Versions>(), true],
|
||||
['2.8.3' as SemVer, Mock.of<Versions>({ minVersion: '2.0.0' }), true],
|
||||
['2.0.0' as SemVer, Mock.of<Versions>({ minVersion: '2.0.0' }), true],
|
||||
['1.8.0' as SemVer, Mock.of<Versions>({ maxVersion: '1.8.0' }), true],
|
||||
['1.7.1' as SemVer, Mock.of<Versions>({ maxVersion: '1.8.0' }), true],
|
||||
['1.7.3' as SemVer, Mock.of<Versions>({ minVersion: '1.7.0', maxVersion: '1.8.0' }), true],
|
||||
['1.8.3' as SemVer, Mock.of<Versions>({ minVersion: '2.0.0' }), false],
|
||||
['1.8.3' as SemVer, Mock.of<Versions>({ maxVersion: '1.8.0' }), false],
|
||||
['1.8.3' as SemVer, Mock.of<Versions>({ minVersion: '1.7.0', maxVersion: '1.8.0' }), false],
|
||||
[undefined, fromPartial<Versions>({}), false],
|
||||
[null, fromPartial<Versions>({}), false],
|
||||
['' as Empty, fromPartial<Versions>({}), false],
|
||||
[[], fromPartial<Versions>({}), false],
|
||||
['2.8.3' as SemVer, fromPartial<Versions>({}), true],
|
||||
['2.8.3' as SemVer, fromPartial<Versions>({ minVersion: '2.0.0' }), true],
|
||||
['2.0.0' as SemVer, fromPartial<Versions>({ minVersion: '2.0.0' }), true],
|
||||
['1.8.0' as SemVer, fromPartial<Versions>({ maxVersion: '1.8.0' }), true],
|
||||
['1.7.1' as SemVer, fromPartial<Versions>({ maxVersion: '1.8.0' }), true],
|
||||
['1.7.3' as SemVer, fromPartial<Versions>({ minVersion: '1.7.0', maxVersion: '1.8.0' }), true],
|
||||
['1.8.3' as SemVer, fromPartial<Versions>({ minVersion: '2.0.0' }), false],
|
||||
['1.8.3' as SemVer, fromPartial<Versions>({ maxVersion: '1.8.0' }), false],
|
||||
['1.8.3' as SemVer, fromPartial<Versions>({ minVersion: '1.7.0', maxVersion: '1.8.0' }), false],
|
||||
])('properly matches versions based on what is provided', (version, versionConstraints, expected) => {
|
||||
expect(versionMatch(version, versionConstraints)).toEqual(expected);
|
||||
});
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { ColorGenerator } from '../../../src/utils/services/ColorGenerator';
|
||||
import type { LocalStorage } from '../../../src/utils/services/LocalStorage';
|
||||
import { MAIN_COLOR } from '../../../src/utils/theme';
|
||||
|
||||
describe('ColorGenerator', () => {
|
||||
let colorGenerator: ColorGenerator;
|
||||
const storageMock = Mock.of<LocalStorage>({
|
||||
const storageMock = fromPartial<LocalStorage>({
|
||||
set: jest.fn(),
|
||||
get: jest.fn(),
|
||||
});
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import { LocalStorage } from '../../../src/utils/services/LocalStorage';
|
||||
|
||||
describe('LocalStorage', () => {
|
||||
const getItem = jest.fn((key) => (key === 'shlink.foo' ? JSON.stringify({ foo: 'bar' }) : null));
|
||||
const setItem = jest.fn();
|
||||
const localStorageMock = Mock.of<Storage>({ getItem, setItem });
|
||||
const localStorageMock = fromPartial<Storage>({ getItem, setItem });
|
||||
let storage: LocalStorage;
|
||||
|
||||
beforeEach(() => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Mock } from 'ts-mockery';
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { ColorGenerator } from '../../../../src/utils/services/ColorGenerator';
|
||||
|
||||
export const colorGeneratorMock = Mock.of<ColorGenerator>({
|
||||
export const colorGeneratorMock = fromPartial<ColorGenerator>({
|
||||
getColorForKey: jest.fn(() => 'red'),
|
||||
setColorForKey: jest.fn(),
|
||||
isColorLightForKey: jest.fn(() => false),
|
||||
|
||||
Reference in New Issue
Block a user