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);
+ });
+});