diff --git a/src/helpers/cms-content-helper.js b/src/helpers/cms-content-helper.js
index a4d6f7d1..36b6dd9c 100644
--- a/src/helpers/cms-content-helper.js
+++ b/src/helpers/cms-content-helper.js
@@ -177,11 +177,11 @@ function mapStringToModal(str) {
let linkToReplace = str.substring(startIndex, str.length);
linkToReplace = linkToReplace.substring(0, linkToReplace.indexOf("}") + 1);
- let params = linkToReplace.substring((dynamicStrings.MODAL_LINK).length + 2, linkToReplace.length -1)
+ let params = linkToReplace.substring((dynamicStrings.MODAL_LINK).length + 2, linkToReplace.length -1);
let splitParams = params.split(",");
- let bodyText = '' + splitParams[1] + ''
- let returnVal = str.replace(linkToReplace, bodyText)
+ let bodyText = '' + splitParams[1] + '';
+ let returnVal = str.replace(linkToReplace, bodyText);
if (returnVal.includes(dynamicStrings.MODAL_LINK)) {
returnVal = mapStringToModal(returnVal);
diff --git a/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js
new file mode 100644
index 00000000..8520a110
--- /dev/null
+++ b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.spec.js
@@ -0,0 +1,127 @@
+import { mount } from "@vue/test-utils"
+import servicePackageRadio from "./service-package-radio"
+import inputButtonWrapperMixin from "@/mixins/input-button-wrapper-mixin"
+
+describe("service-package-radio.vue", () => {
+ it("Should include buttonLabel in html", async () => {
+ // Arrange
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: mockProps,
+ },
+ })
+
+ // Act
+ const outputHtml = wrapper.html()
+
+ // Assert
+ expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonLabel"]))
+ })
+
+ it("Should include buttonLabelAuxillaryCopy in html", async () => {
+ // Arrange
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: mockProps,
+ },
+ })
+
+ // Act
+ const outputHtml = wrapper.html()
+
+ // Assert
+ expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonLabelAuxillaryCopy"]))
+ })
+
+ it("Should include buttonLabelSubCopy in html", async () => {
+ // Arrange
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: mockProps,
+ },
+ })
+
+ // Act
+ const outputHtml = wrapper.html()
+
+ // Assert
+ expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonLabelSubCopy"]))
+ })
+ it("Should include buttonFooterCopy in html", async () => {
+ // Arrange
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: mockProps,
+ },
+ })
+
+ // Act
+ const outputHtml = wrapper.html()
+
+ // Assert
+ expect(outputHtml).toEqual(expect.stringContaining(mockProps["buttonFooterCopy"]))
+ })
+ it("Should get 5 strings from getArrayOfListItemsFromRawCmsCopy when provided with a dashed (x5) buttonBodyCopy", async () => {
+ // Arrange
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: mockProps,
+ },
+ })
+ // Act
+ const results = wrapper.vm.getArrayOfListItemsFromRawCmsCopy(wrapper.vm.buttonBodyCopy)
+
+ // Assert
+ expect(results.length).toBe(5)
+ })
+ it("Should get strings from getArrayOfListItemsFromRawCmsCopy without dashes when provided with a dashed buttonBodyCopy", async () => {
+ // Arrange
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: mockProps,
+ },
+ })
+
+ // Act
+ const results = wrapper.vm.getArrayOfListItemsFromRawCmsCopy(wrapper.vm.buttonBodyCopy)
+
+ // Assert
+ const fileredResults = results.filter((result) => {
+ return result.includes(" -");
+ })
+ expect(fileredResults.length).toBe(0)
+ })
+ it("Should get 5 strings from getArrayOfListItemsFromRawCmsCopy when buttonBodyCopy has 6 total dashes, but one is empty ", async () => {
+ // Arrange
+ const moddedProps = mockProps
+ moddedProps["buttonBodyCopy"] = "- buttonBodyCopy test copy - 2 - 3 - 4 - 5 -"
+ let { wrapper } = setupMocks({
+ mountOptionsMockData: {
+ propsData: moddedProps,
+ },
+ })
+
+ // Act
+ const results = wrapper.vm.getArrayOfListItemsFromRawCmsCopy(wrapper.vm.buttonBodyCopy)
+
+ // Assert
+ expect(results.length).toBe(5)
+ })
+})
+
+const mockProps = {
+ buttonLabel: 'buttonLabel test copy',
+ buttonLabelAuxillaryCopy: 'buttonLabelAuxillaryCopy test copy',
+ buttonLabelSubCopy: 'buttonLabelSubCopy test copy',
+ buttonBodyCopy: '- buttonBodyCopy test copy - 2 - 3 - 4 - 5',
+ buttonFooterCopy: 'buttonFooterCopy test copy'
+}
+
+function setupMocks({ mountOptionsMockData = {} }) {
+ const wrapper = mount(servicePackageRadio, {
+ ...mountOptionsMockData,
+ mixins: [inputButtonWrapperMixin]
+ })
+
+ return { wrapper }
+}
\ No newline at end of file
diff --git a/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue
new file mode 100644
index 00000000..c32dd9d3
--- /dev/null
+++ b/src/layouts/provider-preference/provider-pref-radio/provider-pref-radio.vue
@@ -0,0 +1,265 @@
+
+
+
+
+
+
+
+
+
+