diff --git a/package-lock.json b/package-lock.json
index bd51c8acb..3d2bfdf13 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "business-edit-ui",
- "version": "3.7.0",
+ "version": "3.7.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "business-edit-ui",
- "version": "3.7.0",
+ "version": "3.7.1",
"dependencies": {
"@babel/compat-data": "^7.11.0",
"@bcrs-shared-components/action-chip": "1.0.28",
diff --git a/package.json b/package.json
index 3e5ceb0da..f3f331839 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "business-edit-ui",
- "version": "3.7.0",
+ "version": "3.7.1",
"private": true,
"appName": "Edit UI",
"sbcName": "SBC Common Components",
diff --git a/src/components/Alteration/Articles/Articles.vue b/src/components/Alteration/Articles/Articles.vue
index 52a221a01..fd1a74a21 100644
--- a/src/components/Alteration/Articles/Articles.vue
+++ b/src/components/Alteration/Articles/Articles.vue
@@ -7,7 +7,7 @@
- CHANGED
+ {{ editedLabel }}
diff --git a/src/components/Alteration/Articles/ResolutionDates.vue b/src/components/Alteration/Articles/ResolutionDates.vue
index b4d16027b..301cc2321 100644
--- a/src/components/Alteration/Articles/ResolutionDates.vue
+++ b/src/components/Alteration/Articles/ResolutionDates.vue
@@ -6,6 +6,15 @@
+
+ Corrected
+
@@ -25,20 +34,20 @@
- mdi-plus
- Add
+ {{ addBtnIcon }}
+ {{ addBtnLabel }}
mdi-close
Cancel
@@ -52,17 +61,17 @@
-
{{date}}
- mdi-delete
- Remove
+ {{ removeBtnIcon }}
+ {{ removeBtnLabel }}
@@ -140,10 +149,10 @@ export default class ResolutionDates extends Mixins(CommonMixin) {
// Global getters
@Getter getBusinessFoundingDate!: string
@Getter getCurrentDate!: string
- @Getter hasShareStructureChanged!: boolean
- @Getter getHasOriginalRightsOrRestrictions!: boolean
+ @Getter haveNewResolutionDates!: boolean
@Getter getIsResolutionDatesValid!: boolean
@Getter isSummaryMode!: boolean
+ @Getter isBenCorrectionFiling!: boolean
// Global setter
@Action setValidComponent!: ActionBindingIF
@@ -160,6 +169,22 @@ export default class ResolutionDates extends Mixins(CommonMixin) {
return (this.previousDates?.length > 0)
}
+ get addBtnIcon (): string {
+ return this.isBenCorrectionFiling ? 'mdi-pencil' : 'mdi-plus'
+ }
+
+ get addBtnLabel (): string {
+ return this.isBenCorrectionFiling ? 'Correct' : 'Add'
+ }
+
+ get removeBtnIcon (): string {
+ return this.isBenCorrectionFiling ? 'mdi-undo' : 'mdi-delete'
+ }
+
+ get removeBtnLabel (): string {
+ return this.isBenCorrectionFiling ? 'Undo' : 'Remove'
+ }
+
/** Called to add a new date. */
onDateEmitted (date: string): void {
if (date) {
diff --git a/src/interfaces/store-interfaces/state-interfaces/correction-information-interface.ts b/src/interfaces/store-interfaces/state-interfaces/correction-information-interface.ts
index afeda2db0..4349bf233 100644
--- a/src/interfaces/store-interfaces/state-interfaces/correction-information-interface.ts
+++ b/src/interfaces/store-interfaces/state-interfaces/correction-information-interface.ts
@@ -39,4 +39,5 @@ export interface CorrectionInformationIF {
resolutionDates?: string[]
}
startDate?: string // YYYY-MM-DD
+ provisionsRemoved?: boolean
}
diff --git a/src/mixins/filing-template-mixin.ts b/src/mixins/filing-template-mixin.ts
index 54b145491..7ed4f8e28 100644
--- a/src/mixins/filing-template-mixin.ts
+++ b/src/mixins/filing-template-mixin.ts
@@ -161,8 +161,10 @@ export default class FilingTemplateMixin extends Mixins(DateMixin, EnumMixin) {
if (this.isBenCorrectionFiling) {
filing.correction.nameTranslations = isDraft ? this.getNameTranslations : this.prepareNameTranslations()
filing.correction.shareStructure = {
- shareClasses: isDraft ? this.getShareClasses : this.prepareShareClasses()
+ shareClasses: isDraft ? this.getShareClasses : this.prepareShareClasses(),
+ resolutionDates: this.getNewResolutionDates
}
+ filing.correction.provisionsRemoved = this.areProvisionsRemoved
}
// add in data specific to firm corrections
@@ -592,6 +594,8 @@ export default class FilingTemplateMixin extends Mixins(DateMixin, EnumMixin) {
this.setNewResolutionDates(cloneDeep(
filing.correction.shareStructure?.resolutionDates || []
))
+ // store Provisions Removed
+ this.setProvisionsRemoved(filing.correction.provisionsRemoved || false)
}
// store Certify State
diff --git a/src/store/getters/state-getters.ts b/src/store/getters/state-getters.ts
index 44b6f955a..ccf02e8ba 100644
--- a/src/store/getters/state-getters.ts
+++ b/src/store/getters/state-getters.ts
@@ -379,7 +379,9 @@ export const hasCorrectionDataChanged = (state: StateIF): boolean => {
haveNameTranslationsChanged(state) ||
haveOfficeAddressesChanged(state) ||
havePeopleAndRolesChanged(state) ||
- hasShareStructureChanged(state)
+ hasShareStructureChanged(state) ||
+ areProvisionsRemoved(state) ||
+ haveNewResolutionDates(state)
)
}
diff --git a/src/views/Correction/BenCorrection.vue b/src/views/Correction/BenCorrection.vue
index e37871bfa..c0460fcb3 100644
--- a/src/views/Correction/BenCorrection.vue
+++ b/src/views/Correction/BenCorrection.vue
@@ -25,6 +25,8 @@
+
+
import { Component, Emit, Mixins, Prop, Watch } from 'vue-property-decorator'
import { Action } from 'vuex-class'
+import { Articles } from '@/components/Alteration/'
import { CertifySection, Detail, PeopleAndRoles, ShareStructures, StaffPayment, YourCompany }
from '@/components/common/'
import { CommonMixin, DateMixin, FeeMixin, FilingTemplateMixin } from '@/mixins/'
@@ -62,7 +65,8 @@ import { BenefitCompanyStatementResource } from '@/resources/Correction/'
PeopleAndRoles,
ShareStructures,
StaffPayment,
- YourCompany
+ YourCompany,
+ Articles
}
})
export default class BenCorrection extends Mixins(CommonMixin, DateMixin, FeeMixin, FilingTemplateMixin) {
diff --git a/tests/unit/Articles.spec.ts b/tests/unit/Articles.spec.ts
index 9e4e8a9be..99081dbc4 100644
--- a/tests/unit/Articles.spec.ts
+++ b/tests/unit/Articles.spec.ts
@@ -25,6 +25,11 @@ const changeCompanyProvisionsButton = '#change-company-provisions'
const undoCompanyProvisions = '#undo-company-provisions'
const companyProvisionsCheckbox = '#cp-checkbox'
const companyProvisionDoneButton = '#company-provisions-done'
+const resolutionDatesSection = '#resolution-dates'
+const resolutionDatesAddButtonn = '#add-resolution-date'
+const resolutionDatesCloseButton = '#close-resolution-date'
+const resolutionDatesRemoveButton = '#remove-resolution-date'
+const resolutionDatesTextsList = '.resolution-date-list'
describe('Articles component', () => {
it('displays the correct sections', () => {
@@ -38,6 +43,7 @@ describe('Articles component', () => {
expect(wrapper.find(articlesHeaderIcon).exists()).toBe(true)
expect(wrapper.find(articlesHeaderLabel).text()).toBe('Articles')
expect(wrapper.find(companyProvisionsSection).exists()).toBe(true)
+ expect(wrapper.find(resolutionDatesSection).exists()).toBe(true)
wrapper.destroy()
})
@@ -150,4 +156,46 @@ describe('Articles component', () => {
wrapper.destroy()
})
+
+ it('shows only Add button when list for the initial state', () => {
+ const router = mockRouter.mock()
+ router.push({ name: alterationRoute })
+ store.state.stateModel.shareStructureStep.resolutionDates = []
+ const wrapper = mount(Articles, { router, store, vuetify })
+
+ expect(wrapper.find(articlesTitle).exists()).toBe(true)
+ expect(wrapper.find(resolutionDatesAddButtonn).exists()).toBe(true)
+
+ wrapper.destroy()
+ })
+
+ it('shows only Close button when Add button is clicked', async () => {
+ const router = mockRouter.mock()
+ router.push({ name: alterationRoute })
+ store.state.stateModel.shareStructureStep.resolutionDates = []
+ const wrapper = mount(Articles, { router, store, vuetify })
+
+ expect(wrapper.find(articlesTitle).exists()).toBe(true)
+ const addBtn = wrapper.find(resolutionDatesAddButtonn)
+ await addBtn.trigger('click')
+
+ expect(wrapper.find(resolutionDatesCloseButton).exists()).toBe(true)
+
+ wrapper.destroy()
+ })
+
+ it('shows only Remove button when the list is not empty', () => {
+ const router = mockRouter.mock()
+ router.push({ name: alterationRoute })
+ store.state.stateModel.shareStructureStep.resolutionDates = ['2022-08-31']
+ const wrapper = mount(Articles, { router, store, vuetify })
+
+ expect(wrapper.find(articlesTitle).exists()).toBe(true)
+ expect(wrapper.find(resolutionDatesRemoveButton).exists()).toBe(true)
+ const dates = wrapper.findAll(resolutionDatesTextsList)
+ expect(dates.exists()).toBe(true)
+ expect(dates.length).toBe(1)
+ expect(dates.at(0).text()).toContain('2022-08-31')
+ wrapper.destroy()
+ })
})
diff --git a/tests/unit/BenCorrection.spec.ts b/tests/unit/BenCorrection.spec.ts
index 83de71d3c..c84ebd133 100644
--- a/tests/unit/BenCorrection.spec.ts
+++ b/tests/unit/BenCorrection.spec.ts
@@ -6,6 +6,9 @@ import sinon from 'sinon'
import { getVuexStore } from '@/store/'
import { shallowMount, createLocalVue } from '@vue/test-utils'
import { axios } from '@/utils/'
+import { Articles } from '@/components/Alteration/'
+import { CertifySection, Detail, PeopleAndRoles, ShareStructures, StaffPayment, YourCompany }
+ from '@/components/common/'
import BenCorrection from '@/views/Correction/BenCorrection.vue'
import mockRouter from './MockRouter'
@@ -156,6 +159,16 @@ describe('Benefit Company Correction component', () => {
expect(wrapper.findComponent(BenCorrection).exists()).toBe(true)
})
+ it('loads each component', async () => {
+ expect(wrapper.findComponent(YourCompany).exists()).toBe(true)
+ expect(wrapper.findComponent(PeopleAndRoles).exists()).toBe(true)
+ expect(wrapper.findComponent(ShareStructures).exists()).toBe(true)
+ expect(wrapper.findComponent(Articles).exists()).toBe(true)
+ expect(wrapper.findComponent(Detail).exists()).toBe(true)
+ expect(wrapper.findComponent(CertifySection).exists()).toBe(true)
+ expect(wrapper.findComponent(StaffPayment).exists()).toBe(true)
+ })
+
// FUTURE
xit('loads the entity snapshot into the store', async () => {
await wrapper.setProps({ appReady: true })
diff --git a/tests/unit/CompanyProvisions.spec.ts b/tests/unit/CompanyProvisions.spec.ts
index eb0f549c2..b6504c703 100644
--- a/tests/unit/CompanyProvisions.spec.ts
+++ b/tests/unit/CompanyProvisions.spec.ts
@@ -175,4 +175,26 @@ describe('company provisions', () => {
wrapper.destroy()
})
+
+ it('displays the Correct button for correction filings', () => {
+ store.state.stateModel.tombstone.entityType = 'BEN'
+ store.state.stateModel.tombstone.filingType = 'correction'
+
+ const router = mockRouter.mock()
+ router.push({ name: alterationRouterName })
+ const wrapper = mount(CompanyProvisions,
+ {
+ router,
+ vuetify,
+ store,
+ propsData: { provisionsRemoved: false }
+ })
+
+ const addBtn = wrapper.find('#change-company-provisions')
+ expect(addBtn.exists()).toBe(true)
+ expect(addBtn.text()).toBe('Correct')
+ expect(addBtn.find('.v-icon.mdi-pencil').exists()).toBe(true)
+
+ wrapper.destroy()
+ })
})
diff --git a/tests/unit/ResolutionDates.spec.ts b/tests/unit/ResolutionDates.spec.ts
index 99760774b..78a2a6740 100644
--- a/tests/unit/ResolutionDates.spec.ts
+++ b/tests/unit/ResolutionDates.spec.ts
@@ -300,6 +300,38 @@ describe('Resolution Dates component - edit mode', () => {
wrapper.destroy()
})
+
+ it('displays the Correct button for correction filings', () => {
+ store.state.stateModel.tombstone.entityType = 'BEN'
+ store.state.stateModel.tombstone.filingType = 'correction'
+ store.state.stateModel.shareStructureStep.shareClasses = shareClasses
+ store.state.stateModel.shareStructureStep.resolutionDates = addedDates
+
+ const wrapper = wrapperFactory()
+
+ const addBtn = wrapper.find('#add-resolution-date')
+ expect(addBtn.exists()).toBe(true)
+ expect(addBtn.text()).toBe('Correct')
+ expect(addBtn.find('.v-icon.mdi-pencil').exists()).toBe(true)
+
+ wrapper.destroy()
+ })
+
+ it('displays the Undo button for correction filings', async () => {
+ store.state.stateModel.tombstone.entityType = 'BEN'
+ store.state.stateModel.tombstone.filingType = 'correction'
+ store.state.stateModel.shareStructureStep.shareClasses = shareClasses
+ store.state.stateModel.shareStructureStep.resolutionDates = addedDates
+
+ const wrapper = wrapperFactory({ addedDates: ['2021-03-17'] })
+
+ const removeBtn = wrapper.find('#remove-resolution-date')
+ expect(removeBtn.exists()).toBe(true)
+ expect(removeBtn.text()).toBe('Undo')
+ expect(removeBtn.find('.v-icon.mdi-undo').exists()).toBe(true)
+
+ wrapper.destroy()
+ })
})
describe('Resolution Dates component - review mode', () => {