From 712fc29f707abb1ba503a1fe0b325db2cf70880b Mon Sep 17 00:00:00 2001 From: Dima K Date: Thu, 2 Jun 2022 15:30:53 -0700 Subject: [PATCH] Add Asset Registries tile to public dashboard (12240) (#80) * Combine MHR and PPR products into one Asset * Add Dashboard and UserProduct unit tests * Simplify conditional logic statement * Update VuexStore in tests --- components/UserProduct.vue | 4 +- enums/productCode.ts | 1 + pages/dashboard.vue | 17 ++++- ...t_Registries_dashboard_thumbnail_image.jpg | Bin 0 -> 67012 bytes store/index.ts | 15 +++++ test/Dashboard.spec.js | 35 +++++++++-- test/UserProduct.spec.js | 59 ++++++++++++++++++ test/utils/helpers.ts | 6 +- utils/user-product-helper.ts | 40 +++++++++++- 9 files changed, 162 insertions(+), 15 deletions(-) create mode 100644 static/img/My_Asset_Registries_dashboard_thumbnail_image.jpg diff --git a/components/UserProduct.vue b/components/UserProduct.vue index 164c10d..f9eed9f 100644 --- a/components/UserProduct.vue +++ b/components/UserProduct.vue @@ -58,8 +58,8 @@ export default class UserProduct extends Vue { } .service-img { - height: 225px; - width: 300px; + height: 183px; + width: 244px; } .service-info { diff --git a/enums/productCode.ts b/enums/productCode.ts index 43853f3..9d600de 100644 --- a/enums/productCode.ts +++ b/enums/productCode.ts @@ -3,6 +3,7 @@ export enum ProductCode { BUSINESS_SEARCH = 'BUSINESS_SEARCH', CSO = 'CSO', PPR = 'PPR', + MHR = 'MHR', RPT = 'RPT', VS = 'VS' } diff --git a/pages/dashboard.vue b/pages/dashboard.vue index 2df5786..fddd651 100644 --- a/pages/dashboard.vue +++ b/pages/dashboard.vue @@ -64,7 +64,8 @@ import { ProductCode, ProductStatus } from '@/enums' import { fetchAccountProducts, fetchOrganization, getFeatureFlag, getKeycloakRoles, - getProductInfo, sleep, setLogoutUrl + getProductInfo, sleep, setLogoutUrl, + hasMhrAndPprProducts, addMyAssetRegistriesTile } from '@/utils' export default Vue.extend ({ @@ -170,6 +171,7 @@ export default Vue.extend ({ const currentProducts = products.filter( product => product.subscriptionStatus === ProductStatus.ACTIVE ) + const isMhrPpr = hasMhrAndPprProducts(currentProducts) // only show products with no placeholder for (let i = 0; i < currentProducts.length; i++) { @@ -177,10 +179,19 @@ export default Vue.extend ({ if (!getFeatureFlag('bcregistry-ui-bus-search-enabled')) continue } const thisProduct = getProductInfo(this.$config, currentProducts[i].code) - if (thisProduct.title !== 'placeholder_title') { - this.subscribedProducts.push(thisProduct) + + // if user has both MHR and PPR product codes - don't add the tiles for them + if (!isMhrPpr || (currentProducts[i].code !== ProductCode.MHR && currentProducts[i].code !== ProductCode.PPR)) { + if (thisProduct.title !== 'placeholder_title') { + this.subscribedProducts.push(thisProduct) + } } } + + // if user has both MHR and PPR product codes - add a My Asset Registries tile + if (isMhrPpr) { + addMyAssetRegistriesTile(this.$config, this.subscribedProducts) + } } // wait 250ms so it doesn't look glitchy if products come back immediately diff --git a/static/img/My_Asset_Registries_dashboard_thumbnail_image.jpg b/static/img/My_Asset_Registries_dashboard_thumbnail_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b22b5f340a99f12db7c7d069ccf27ce557cfc6b1 GIT binary patch literal 67012 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 + state, + getters, + mutations, + actions + }) + + return store +} + export function state (): StateI { return { isStaff: null, diff --git a/test/Dashboard.spec.js b/test/Dashboard.spec.js index 6f13f48..48c8311 100644 --- a/test/Dashboard.spec.js +++ b/test/Dashboard.spec.js @@ -8,16 +8,17 @@ import { SessionStorageKeys } from 'sbc-common-components/src/util/constants' // local import dashboard from '@/pages/dashboard.vue' import UserProduct from '@/components/UserProduct.vue' -import { state } from '@/store' +import { getVuexStore } from '@/store' import { ProductCode, ProductStatus } from '@/enums' import { authAxios, getProductInfo } from '@/utils' import { createComponent } from '@/test/utils' Vue.use(Vuetify) const vuetify = new Vuetify({}) -const store = state +const store = getVuexStore() const localVue = createLocalVue() localVue.use(Vuetify) +jest.useFakeTimers() const testProducts = [ { @@ -26,7 +27,11 @@ const testProducts = [ }, { code: ProductCode.PPR, - subscriptionStatus: ProductStatus.NOT_SUBSCRIBED + subscriptionStatus: ProductStatus.ACTIVE + }, + { + code: ProductCode.MHR, + subscriptionStatus: ProductStatus.ACTIVE } ] @@ -39,15 +44,18 @@ describe('Dashboard tests', () => { const currentAccount = { id: 'test_id' } sessionStorage.setItem(SessionStorageKeys.CurrentAccount, JSON.stringify(currentAccount)) sessionStorage.setItem(SessionStorageKeys.AuthApiUrl, 'mocked_url') - + beforeEach(async () => { sandbox = createSandbox() const getStub = sandbox.stub(authAxios, 'get') const getProducts = getStub.withArgs(`orgs/${currentAccount.id}/products`) getProducts.returns(new Promise(resolve => resolve({ data: testProducts }))) - const propsData = {} - wrapper = createComponent(dashboard, localVue, store, propsData, vuetify) + const propsData = { getProductInfo: getProducts, loadingProducts: false } + const mocks = { + $config: { myBusinessRegistryDashboard: '', pprDashboard: '' } + } + wrapper = createComponent(dashboard, localVue, store, propsData, vuetify, mocks) await flushPromises() }) afterEach(() => { @@ -70,4 +78,19 @@ describe('Dashboard tests', () => { expect(wrapper.find('.dash-sub-header').text()).toContain('(1)') expect(wrapper.find('.dash-container-info').exists()).toBe(true) }) + + test('Displays active products with My Asset Registries tile', async () => { + expect(wrapper.findComponent(dashboard).exists()).toBe(true) + + // Add a delay because of expicit timeout set in the dashboard + jest.advanceTimersByTime(250) + await Vue.nextTick() + + const userProducts = wrapper.findAllComponents(UserProduct) + + expect(userProducts).toHaveLength(2) + expect(userProducts.at(0).text()).toContain('My Business Registry'); + expect(userProducts.at(1).text()).toContain('My Asset Registries'); + }) + }) diff --git a/test/UserProduct.spec.js b/test/UserProduct.spec.js index 4ebc60f..b0eb66e 100644 --- a/test/UserProduct.spec.js +++ b/test/UserProduct.spec.js @@ -6,6 +6,8 @@ import flushPromises from 'flush-promises' import UserProduct from '@/components/UserProduct.vue' import { state } from '@/store' import { createComponent } from '@/test/utils' +import { hasMhrAndPprProducts, addMyAssetRegistriesTile } from '@/utils' + Vue.use(Vuetify) const vuetify = new Vuetify({}) @@ -47,3 +49,60 @@ describe('UserProduct tests', () => { expect(wrapper.find('.service-info p').text()).toBe(testProduct.text) }) }) + +describe('User Product helper functions tests', () => { + test('should check for PPR and MHR products', () => { + + let products = [ + { + "description": "Business Registry & Name Request", + "code": "BUSINESS", + }, + { + "description": "Personal Property Registry", + "code": "PPR", + }, + { + "description": "Manufactured Home Registry", + "code": "MHR", + }, + { + "description": "Wills Registry", + "code": "VS" + } + ] + + expect(hasMhrAndPprProducts(products)).toBe(true) + + products = [ + { + "description": "Business Registry & Name Request", + "code": "BUSINESS", + }, + { + "description": "Personal Property Registry", + "code": "PPR" + } + ] + + expect(hasMhrAndPprProducts(products)).toBe(false) + + }) + + test('should add MHR and PPR product to subscribed list of products', () => { + + const subscribedProducts = [{ + image: 'placeholder_image', + link: 'placeholder_link', + text: 'placeholder_text', + title: 'placeholder_title' + }] + + addMyAssetRegistriesTile({ myBusinessRegistryDashboard: '', pprDashboard: '' }, subscribedProducts) + const mhrPprProduct = subscribedProducts.find(p => p.title === 'My Asset Registries') + + expect(subscribedProducts).toHaveLength(2) + expect(mhrPprProduct).not.toBeUndefined() + }) +}) + diff --git a/test/utils/helpers.ts b/test/utils/helpers.ts index 7f3cb19..1ed23ba 100644 --- a/test/utils/helpers.ts +++ b/test/utils/helpers.ts @@ -33,13 +33,15 @@ export function createComponent( localVue: any, store: any, propsData: any, - vuetify: Vuetify + vuetify: Vuetify, + mocks: any = {} ): Wrapper { document.body.setAttribute('data-app', 'true') return mount(component, { localVue, store, propsData: { ...propsData }, - vuetify + vuetify, + mocks }) } diff --git a/utils/user-product-helper.ts b/utils/user-product-helper.ts index b0b72de..6dcd33d 100644 --- a/utils/user-product-helper.ts +++ b/utils/user-product-helper.ts @@ -1,6 +1,6 @@ -import { ProductCode } from '@/enums' -import { ProductI } from '@/interfaces' import { appendAccountId } from 'sbc-common-components/src/util/common-util' +import { ProductCode, ProductStatus } from '@/enums' +import { ProductI, APIProductI } from '@/interfaces' /** * Returns product info object for specified type. @@ -28,6 +28,13 @@ export function getProductInfo (config, type: ProductCode): ProductI { text: 'placeholder_text', title: 'placeholder_title' } as ProductI + case ProductCode.MHR: + return { + image: 'img/PPR_dashboard_thumbnail_image.jpg', + link: appendAccountId(config?.pprDashboard) || 'link_not_configured', + text: 'Register or search for manufactured homes in British Columbia.', + title: 'My Manufactured Home Registry' + } as ProductI case ProductCode.PPR: return { image: 'img/PPR_dashboard_thumbnail_image.jpg', @@ -59,3 +66,32 @@ export function getProductInfo (config, type: ProductCode): ProductI { } as ProductI } } + +/** + * Get info for My Asset Registries tile (that replaces MHR and PPR products) + */ +export function getMhrPprTileInfo(config): ProductI { + return { + image: 'img/My_Asset_Registries_dashboard_thumbnail_image.jpg', + link: appendAccountId(config?.pprDashboard) || 'link_not_configured', + text: 'Register or search for manufactured homes, and register or search for legal claims on personal property.', + title: 'My Asset Registries' + } +} + +/** + * Check if products array has MHR and PPR + */ +export function hasMhrAndPprProducts(products: Array): boolean { + return products + .filter(product => product.code === ProductCode.MHR || product.code === ProductCode.PPR) + .length === 2 +} + +/** + * Add one My Asset Registries tile instead of MHR and PPR tiles + */ +export function addMyAssetRegistriesTile(config, products: Array): void { + const mhrPprProduct = getMhrPprTileInfo(config) + products.push(mhrPprProduct) +}