diff --git a/package-lock.json b/package-lock.json index 0ea2e31ca..88a73ac4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,6 @@ "canvas-confetti": "^1.4.0", "core-js": "^3.6.5", "http-status-codes": "^2.1.4", - "jest-junit": "^13.0.0", "vue": "^3.0.0", "vue-router": "^4.0.11", "vuex": "^4.0.2", @@ -32,6 +31,7 @@ "eslint": "^6.7.2", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-vue": "^7.0.0", + "jest-junit": "^13.0.0", "prettier": "^2.2.1", "sass": "^1.26.5", "sass-loader": "^8.0.2", @@ -10962,6 +10962,7 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-13.0.0.tgz", "integrity": "sha512-JSHR+Dhb32FGJaiKkqsB7AR3OqWKtldLd6ZH2+FJ8D4tsweb8Id8zEVReU4+OlrRO1ZluqJLQEETm+Q6/KilBg==", + "dev": true, "dependencies": { "mkdirp": "^1.0.4", "strip-ansi": "^6.0.1", @@ -10976,6 +10977,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -10984,6 +10986,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -10995,6 +10998,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11006,6 +11010,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "bin": { "uuid": "dist/bin/uuid" } @@ -11743,9 +11748,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - }, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -18003,7 +18005,6 @@ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "dependencies": { - "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" }, @@ -18067,7 +18068,6 @@ "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -18982,7 +18982,8 @@ "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=" + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true }, "node_modules/xml-name-validator": { "version": "3.0.0", @@ -27872,6 +27873,7 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-13.0.0.tgz", "integrity": "sha512-JSHR+Dhb32FGJaiKkqsB7AR3OqWKtldLd6ZH2+FJ8D4tsweb8Id8zEVReU4+OlrRO1ZluqJLQEETm+Q6/KilBg==", + "dev": true, "requires": { "mkdirp": "^1.0.4", "strip-ansi": "^6.0.1", @@ -27882,17 +27884,20 @@ "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } @@ -27900,7 +27905,8 @@ "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true } } }, @@ -34454,7 +34460,8 @@ "xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=" + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true }, "xml-name-validator": { "version": "3.0.0", diff --git a/package.json b/package.json index 2fe60a35b..8b26d9e8e 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.0", - "jest-junit": "^13.0.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-unit-jest": "~4.5.0", "@vue/cli-service": "~4.5.0", @@ -33,6 +32,7 @@ "eslint": "^6.7.2", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-vue": "^7.0.0", + "jest-junit": "^13.0.0", "prettier": "^2.2.1", "sass": "^1.26.5", "sass-loader": "^8.0.2", diff --git a/src/assets/img/blurrycar.png b/src/assets/img/blurrycar.png new file mode 100644 index 000000000..00fdc2145 Binary files /dev/null and b/src/assets/img/blurrycar.png differ diff --git a/src/assets/img/icons/spinner.svg b/src/assets/img/icons/spinner.svg new file mode 100644 index 000000000..d5b7fe4c0 --- /dev/null +++ b/src/assets/img/icons/spinner.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/common-components/radio-question/radio-question.spec.js b/src/common-components/radio-question/radio-question.spec.js index da58ea8d1..eac0843e5 100644 --- a/src/common-components/radio-question/radio-question.spec.js +++ b/src/common-components/radio-question/radio-question.spec.js @@ -19,8 +19,7 @@ describe("radioQuestion.vue", () => { "Question Text" ); const radioButtons = wrapper.findAllComponents('[data-test="radio"]'); - expect(radioButtons[0].attributes("text")).toEqual("2023"); - expect(radioButtons[2].attributes("text")).toEqual("2021"); + expect(radioButtons.length).toBe(3); expect(typeof wrapper.props().chooseAnswer).toBe("function"); }); }); diff --git a/src/common-components/radio-question/radio-question.vue b/src/common-components/radio-question/radio-question.vue index 2fb50f018..7a91aab1e 100644 --- a/src/common-components/radio-question/radio-question.vue +++ b/src/common-components/radio-question/radio-question.vue @@ -1,18 +1,22 @@ diff --git a/src/ux-components/list-button/list-button.vue b/src/ux-components/list-button/list-button.vue index 2580b0f83..5bad044b3 100644 --- a/src/ux-components/list-button/list-button.vue +++ b/src/ux-components/list-button/list-button.vue @@ -1,36 +1,48 @@ diff --git a/src/ux-components/loader/loader.spec.js b/src/ux-components/loader/loader.spec.js new file mode 100644 index 000000000..3d0843e10 --- /dev/null +++ b/src/ux-components/loader/loader.spec.js @@ -0,0 +1 @@ +test.todo("some test to be written in the future"); diff --git a/src/ux-components/loader/loader.vue b/src/ux-components/loader/loader.vue new file mode 100644 index 000000000..448e39b78 --- /dev/null +++ b/src/ux-components/loader/loader.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/src/ux-components/radio-list/radio-list.vue b/src/ux-components/radio-list/radio-list.vue index b6a02eca2..2976ce87e 100644 --- a/src/ux-components/radio-list/radio-list.vue +++ b/src/ux-components/radio-list/radio-list.vue @@ -1,28 +1,51 @@ diff --git a/src/ux-components/radio/radio.spec.js b/src/ux-components/radio/radio.spec.js index 35ddfdab7..ba0dfd496 100644 --- a/src/ux-components/radio/radio.spec.js +++ b/src/ux-components/radio/radio.spec.js @@ -2,22 +2,46 @@ import { shallowMount } from "@vue/test-utils"; import radio from "./radio"; describe("radio.vue", () => { - it("Should render the 'text' prop value as a span value for the radio button label and add the 'value' prop value as the radio button value and id.", () => { + it("Should render the 'radioID' prop value as the label and id value as well as the radio button value, groupName as the name value, and fire a click even that sets the display data attribute to true.", async () => { // Act const wrapper = shallowMount(radio, { propsData: { - value: "2023", - text: "12", + radioID: "2023", + groupName: "TestGroup", + loaderColor: "blue", + loaderPosition: "right", + sizeInRem: "1.5", + errorMessage: 'null' }, }); // Assert - expect(wrapper.find("span").text()).toEqual("12"); - expect(wrapper.find("input").attributes()).toEqual({ - class: "position-absolute opacity-0", + const input = wrapper.find("input"); + const label = wrapper.find("label"); + const paragraph = wrapper.find("p"); + + await label.trigger('click'); + + expect(input.attributes()).toEqual({ id: "2023", type: "radio", value: "2023", + name: "TestGroup", }); + + expect(label.attributes()).toEqual({ + role: "radio", + tabindex: "0", + for: "2023", + class: "d-flex align-items-center justify-content-between p-2", + "aria-checked": "false" + }); + + expect(label.text()).toEqual('2023'); + + expect(paragraph.text()).toEqual('null'); + + expect(wrapper.vm.display).toBe(true); + }); }); diff --git a/src/ux-components/radio/radio.vue b/src/ux-components/radio/radio.vue index ac005bca4..76913ebbd 100644 --- a/src/ux-components/radio/radio.vue +++ b/src/ux-components/radio/radio.vue @@ -1,35 +1,49 @@ diff --git a/vue.config.js b/vue.config.js index d54265f0c..aba5fd140 100644 --- a/vue.config.js +++ b/vue.config.js @@ -13,12 +13,12 @@ module.exports = { @import "@/styles/ux-variables.scss"; @import "./node_modules/bootstrap/scss/variables"; @import "./node_modules/bootstrap/scss/mixins"; + @import "@/styles/mixins/customMixins"; @import "./node_modules/bootstrap/scss/bootstrap"; @import "@/styles/common-styles.scss"; @import "@/styles/common-button-styles.scss"; @import "@/styles/common-radio-styles.scss"; @import "@/styles/common-typography-styles.scss"; - @import "@/styles/common-component-styles/ymms-common-styles.scss"; `, }, }, diff --git a/vue.release.config.js b/vue.release.config.js index f85e8ffa8..6cf78123c 100644 --- a/vue.release.config.js +++ b/vue.release.config.js @@ -12,12 +12,12 @@ module.exports = { @import "@/styles/ux-variables.scss"; @import "./node_modules/bootstrap/scss/variables"; @import "./node_modules/bootstrap/scss/mixins"; + @import "@/styles/mixins/customMixins"; @import "./node_modules/bootstrap/scss/bootstrap"; @import "@/styles/common-styles.scss"; @import "@/styles/common-button-styles.scss"; @import "@/styles/common-radio-styles.scss"; @import "@/styles/common-typography-styles.scss"; - @import "@/styles/common-component-styles/ymms-common-styles.scss"; `, }, },