From 5afd3869ddeb19773cd7f0ad856de28fa81a0ea9 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sun, 14 Feb 2021 17:33:01 +0100 Subject: [PATCH] Created ShortUrlCreation test --- test/settings/ShortUrlCreation.test.tsx | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/settings/ShortUrlCreation.test.tsx diff --git a/test/settings/ShortUrlCreation.test.tsx b/test/settings/ShortUrlCreation.test.tsx new file mode 100644 index 00000000..07d0bd7b --- /dev/null +++ b/test/settings/ShortUrlCreation.test.tsx @@ -0,0 +1,54 @@ +import { shallow, ShallowWrapper } from 'enzyme'; +import { Mock } from 'ts-mockery'; +import { ShortUrlCreationSettings, Settings } from '../../src/settings/reducers/settings'; +import { ShortUrlCreation } from '../../src/settings/ShortUrlCreation'; +import ToggleSwitch from '../../src/utils/ToggleSwitch'; + +describe('', () => { + let wrapper: ShallowWrapper; + const setShortUrlCreationSettings = jest.fn(); + const createWrapper = (shortUrlCreation?: ShortUrlCreationSettings) => { + wrapper = shallow( + ({ shortUrlCreation })} + setShortUrlCreationSettings={setShortUrlCreationSettings} + />, + ); + + return wrapper; + }; + + afterEach(() => wrapper?.unmount()); + afterEach(jest.clearAllMocks); + + it.each([ + [{ validateUrls: true }, true ], + [{ validateUrls: false }, false ], + [ undefined, false ], + ])('switch is toggled if option is tru', (shortUrlCreation, expectedChecked) => { + const wrapper = createWrapper(shortUrlCreation); + const toggle = wrapper.find(ToggleSwitch); + + expect(toggle.prop('checked')).toEqual(expectedChecked); + }); + + it.each([[ true ], [ false ]])('invokes setShortUrlCreationSettings when toggle value changes', (validateUrls) => { + const wrapper = createWrapper(); + const toggle = wrapper.find(ToggleSwitch); + + expect(setShortUrlCreationSettings).not.toHaveBeenCalled(); + toggle.simulate('change', validateUrls); + expect(setShortUrlCreationSettings).toHaveBeenCalledWith({ validateUrls }); + }); + + it.each([ + [{ validateUrls: true }, 'checkbox will be checked' ], + [{ validateUrls: false }, 'checkbox will be unchecked' ], + [ undefined, 'checkbox will be unchecked' ], + ])('shows expected helper text', (shortUrlCreation, expectedText) => { + const wrapper = createWrapper(shortUrlCreation); + const text = wrapper.find('.form-text'); + + expect(text.text()).toContain(expectedText); + }); +});