...
// This function returns an array of each paragraph, works with or without html // attributes present +/** + * + * @param copy + */ export function splitCMSCopyOnParagraphTag(copy) { // filter removes empty strings that are a result of string.split with regex return copy.split(/(?:)|(?:<\/p>)/g).filter((paragraph) => paragraph !== ''); diff --git a/src/helpers/global-rule-definer.js b/src/helpers/global-rule-definer.js index 1a844fb2..650fb97e 100644 --- a/src/helpers/global-rule-definer.js +++ b/src/helpers/global-rule-definer.js @@ -48,6 +48,7 @@ function defineGlobalPhoneNumberRules() { } /** + * @function defineGlobalRules * @summary Define all global rules */ export default function defineGlobalRules() { diff --git a/src/helpers/text-helper.js b/src/helpers/text-helper.js index e1cd64dd..01d18309 100644 --- a/src/helpers/text-helper.js +++ b/src/helpers/text-helper.js @@ -1,8 +1,11 @@ /** - * Returns string with inline style tag stripped out - * @returns string + * @function stripRteStyle + * @summary + * Returns string with inline style tag stripped out + * @param {string} stringWithStyleTag + * @returns {string} */ -export function stripRteStyle(stringWithStyleTag) { +export default function stripRteStyle(stringWithStyleTag) { const regexExp = /[\s*]style="(.*?)"/g; return stringWithStyleTag.replace(regexExp, ''); } diff --git a/src/helpers/validation-rules.spec.js b/src/helpers/validation-rules.spec.js index d8db23ab..df0c7ce6 100644 --- a/src/helpers/validation-rules.spec.js +++ b/src/helpers/validation-rules.spec.js @@ -1,5 +1,4 @@ -import { required } from '@/helpers/validation-rules'; -import { regex } from '@/helpers/validation-rules'; +import { regex, required } from '@/helpers/validation-rules'; describe('validation-rules.vue', () => { test('required rules should return error if value missing', () => { diff --git a/src/iss-components/address-questions/address-questions.spec.js b/src/iss-components/address-questions/address-questions.spec.js index 27274bbf..60f8d692 100644 --- a/src/iss-components/address-questions/address-questions.spec.js +++ b/src/iss-components/address-questions/address-questions.spec.js @@ -1,11 +1,78 @@ // Components -import addressQuestions from '@/iss-components/address-questions/address-questions'; +import addressQuestions from '@/iss-components/address-questions/address-questions.vue'; // Supporting Files import { mount, shallowMount } from '@vue/test-utils'; import { getMountOptions } from '@/helpers/unit-test-helper.js'; let autocompleteElement; + +/** @ignore */ +function setupMocks({ + mountOptions, + props, + isShallowMount = true, + querySelectorFunction, + geocoderResult = ['1234 Test Street'] +}) { + const resultingMountOptions = getMountOptions({ + ...mountOptions, + router: { + navigate: jest.fn() + }, + loadScript: jest.fn().mockResolvedValue() + }); + + window.google = { + maps: { + event: { + addListener: jest + .fn() + .mockImplementation((element, eventName, callbackFunction) => { + /** @ignore */ + function interceptedCallbackFunction(e) { + callbackFunction(e.detail); + } + // selectedPlace = "Woogly"; + element.addEventListener(eventName, interceptedCallbackFunction); + }), + removeListener: jest.fn(), + clearInstanceListeners: jest.fn() + }, + places: { + Autocomplete: jest.fn().mockImplementation((el) => el) + }, + Geocoder: class Geocoder { + // constructor(); + + geocode(request, callback) { + callback([geocoderResult], true); + } + }, + GeocoderStatus: { + OK: true + } + } + }; + + if (props) resultingMountOptions.propsData = props; + + const wrapper = isShallowMount + ? shallowMount(addressQuestions, resultingMountOptions) + : mount(addressQuestions, resultingMountOptions); + document.querySelector = jest.fn().mockImplementation((query) => { + let result = null; + if (query === '.pac-container') result = document.createElement('div'); + else if (querySelectorFunction) { + result = querySelectorFunction(query); + } + + return result ?? null; + }); + + return { wrapper }; +} + describe('address-questions.vue', () => { beforeEach(() => { // Create the `addressField1` element (autocomplete's input) @@ -456,80 +523,3 @@ describe('address-questions.vue', () => { }); }); }); - -/** - * - * @param root0 - * @param root0.mountOptions - * @param root0.props - * @param root0.isShallowMount - * @param root0.querySelectorFunction - * @param root0.geocoderResult - */ -function setupMocks({ - mountOptions, - props, - isShallowMount = true, - querySelectorFunction, - geocoderResult = ['1234 Test Street'] -}) { - const resultingMountOptions = getMountOptions({ - ...mountOptions, - router: { - navigate: jest.fn() - }, - loadScript: jest.fn().mockResolvedValue() - }); - - window.google = { - maps: { - event: { - addListener: jest - .fn() - .mockImplementation((element, eventName, callbackFunction) => { - /** - * - * @param e - */ - function interceptedCallbackFunction(e) { - callbackFunction(e.detail); - } - // selectedPlace = "Woogly"; - element.addEventListener(eventName, interceptedCallbackFunction); - }), - removeListener: jest.fn(), - clearInstanceListeners: jest.fn() - }, - places: { - Autocomplete: jest.fn().mockImplementation((el) => el) - }, - Geocoder: class Geocoder { - // constructor(); - - geocode(request, callback) { - callback([geocoderResult], true); - } - }, - GeocoderStatus: { - OK: true - } - } - }; - - if (props) resultingMountOptions.propsData = props; - - const wrapper = isShallowMount - ? shallowMount(addressQuestions, resultingMountOptions) - : mount(addressQuestions, resultingMountOptions); - document.querySelector = jest.fn().mockImplementation((query) => { - let result = null; - if (query === '.pac-container') result = document.createElement('div'); - else if (querySelectorFunction) { - result = querySelectorFunction(query); - } - - return result ?? null; - }); - - return { wrapper }; -} diff --git a/src/iss-components/address-questions/address-questions.vue b/src/iss-components/address-questions/address-questions.vue index 2c0f9501..78f6d640 100644 --- a/src/iss-components/address-questions/address-questions.vue +++ b/src/iss-components/address-questions/address-questions.vue @@ -89,9 +89,9 @@