From fa60b5310ef78433162ef193af9cc6aa5df385e6 Mon Sep 17 00:00:00 2001 From: Karim El Jazzar <122301442+JazzarKarim@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:26:10 -0800 Subject: [PATCH] 18123 rebased legal name FB with main (#626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 18027 AGM Location change (#551) * 18027-agm location details 1 * 18027-agm location details 2 * 18027-agm location details 3 * 18027-update package version * 18027-agm location details 4 * 18027-agm location details 5 * 18027-agm location details 6 * 18027-agm location details 7 * 18027-agm location details 8 * 18027-agm location details 9 * AGM Location Change First PR (#553) * AGM Location Change First PR * small adjustment * small fixes in response to Sev's comments * Fixed in response to Sev's comments * AGM Location Change second PR (#554) * AGM Location Change second PR * Fixed unit tests * fixed in response to Sev's comments * fixed error text * AGM Location Change Third PR (#555) * Created + updated unit tests * Fixed EntityMenu test from ticket part 1 * Fixed lint errors * Fixes in response to Sev's comments * fixed lint issues * Fixed in reponse to Sev's comments * removed unnecessary test code * AGM Location Change 4th and final PR (#556) * AGM Location Change 4th and final PR * changed method name * changed comment * fixed lint error * removed unnecessary line * Fix in response to Sev's comment * Fixed in response to Sev's comment + simplified logic * Removed staff payment dialog * update agm location variable * AGM Location Change 5th PR for styling issues (#559) * AGM Location Change 5th PR for styling issues * fixed left spacing of ripple * fixed small lint issue * fixed in response to Sev's comments * Pre-populate the certify block when logged in user is not staff * Moved user's full name to store to minimize API calls * Fixed in response to Sev's comments * Added optional chaining * 16764 - Fixed end user certify block * Reverted currentuser interface + fixed accordingly * Prevent from showing undefined in certified block * Prevented undefined from showing in certify block in agm location change * 18024 Incremental AGM extension work (#558) - app version = 6.9.5 - imported shared DatePicker component - renamed a base class - added a base class - saved user info into store - added initial AboutTheBusiness sub-component - added initial AgmExtensionEvaluation sub-component - added AgmExtensionHelp sub-component - added initial ExtensionRequest sub-component - added VcardTemplate - updated tooltip text - updated FF - added AgmExtEval interface - renamed RootStateIF -> AuthenticationStateIF - renamed StateIF -> RootStateIF - added DateMixin function for DatePicker component - updated fetchUserInfo to return object (not Axios response) - added missing default FF - deleted obsolete dialog, transition, buttons, methods, CSS from AGM Extension - added help section - added initial sub-components to AGM Extension - updated intro text - updated some whitespace - updated filing code - removed delay in mounted() in AGM Extension - updated onHaveChanges() watcher in AGM Extension - pre-populated CertifiedBy - deleted obsolete transition, methods, CSS from AGM Extension - removed delay in mounted() in AGM Location Chg - updated onHaveChanges() watcher in AGM Location Chg - updated unit tests - misc cleanup * Make Certify block non-editable if non-staff user (AGM Filings) (#564) Make certify block non-editable if non-staff user * feat: digital business card (#566) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * 18161 Updated in response to UXA notes (#567) * Updated in response to UXA notes * package version update after rebasing * 16733 undefined placeholder for federal (#569) * For PR. Added Federal keyword * Restored changes * For PR. Added federal placeholder * Updated package.json * Fixed eslindt errors * Restored space for separation of function * 18024 Incremental AGM Extension changes (#568) - app version = 7.0.3 - removed obsolete dialogs + code - stopped watching changes to certify data - indent cleanup - added initial message box + CSS - app version = 7.0.2 - added NotEligibleExtension dialog - removed waiveFees=true from AGM Extension - removed waiveFees=true from AGM Location Chg - added some unit test suites - worked on unit tests - misc cleanup - used allowable actions value from Legal API - show alert on error starting app - fixed some comments - added showErrors prop to ExtensionRequest component * 18272 Add unit test for AboutTheBusiness component (#570) * Add unit test for AboutTheBusiness * Update AboutTheBusiness tests * Incorporate Sev's test for AboutTheBusiness * Check long string date in test * 17917 Added placeholder for null values (#572) Updated Version * 18024 Incremental AGM Extension changes (#571) * - app version = 7.0.6 - updated ExtensionRequest validation styling - misc small fixes - updated unit tests - added isEligible to interface - show dialog if not eligible - expanded unit tests * wip * 18513 Fixed jerky expandable help transition (#576) - app version = 7.0.7 - imported latest ExpandableHelp component (to fix jerky transition) * Extension Request Scenario 1 (#577) * Extension Request Scenario 1 * Lots of updates after rebasing * package version update after rebasing * cleanup * Fixed unit test * Updated in response to Sev's PR comments * Removed fallback logic from subtractDates in dateutilities * lint fix * 17159 Update fetchNameRequest (#579) update fetchNameRequest * 18273 Extension Request Scenario 2 (#580) * Extension Request Scenario 2 * Fix lint issue * Fix min expiry date * Restore comment on isFirstAgm * Move currentDate to data object * Fix agm year not clearing on firstAgm change * Update watcher comment * Update version to 7.0.10 and fix unit tests * 18469 Capitalize AGM in output titles (#581) - app version = 7.0.11 - added missing cases for AGM filings - added special case to convert "Agm" to "AGM" - fixed a lint warning * 18274 Updated To Do List and Recent Filing History (#584) * - app version = 7.0.12 * - added AGM Extension as a filing in Filing History List - added AGM Extension as cancellable Todo Item - added AGM Extension filing component - fixed wrong enum in Entity Menu - added AGM Extension to Enum Utilities - fixed misc type warnings * - added agmExtension fields to ApiFilingIF - updated AGM Extension filing JSON per schema * - fixed unit test * - added FHL unit tests * 18369 changed the duration of extension messages in accordance with U… (#582) * 18369 changed the duration of extension messages in accordance with UX design * fixed tests for new evaluation messages. * fixed date getters and added expiry date * fixed getters and fixed typo * fixed reactive expiry date * update package json * 18204 disable restore based on ff (#583) * For PR added FF parameters * Fixed && added test cases for historical * Updated package version * chore: update content and images (#586) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix spacing Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: some cleanup Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: credential detailed instructions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: add tags to components Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: minor content updates Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package version Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * fix: DBC feature should be available for historical companies (#587) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix spacing Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: some cleanup Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: credential detailed instructions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: add tags to components Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: minor content updates Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package version Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: DBC feature should be available for historical organization Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: move logic into getter Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: DBC feature should only be available to BCSC user Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package version Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package lock file Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * 18273+18558 Extension Request Cleanup and Tests (#585) * Restore comment on isFirstAgm * Extension Request Cleanup and Tests * Update comment * Use isFirstAgm from data for validity * Remove debugging code * Fix initial state on agm extension evaluation * Fix typo * Set missing values for EmptyAgmExtEval * Add better validation for AGM extension request * Prevent future year for agm year * Update version to 7.0.17 * Fix some of the unit tests * Removed impossible test scenario * Add overflow-auto class * Update date-picker version to 1.2.38 * Remove optional from agm extension interface * Remove console.log * 18024 - Fixed AGM Extensions in TODO List (#591) * 18273+18558 Update Extension Request component UI (#592) * Extension Request Cleanup and Tests * Remove debugging code * Remove optional from agm extension interface * Remove console.log * Update Extension Request component UI * 18534 Changes to support amalgamation applications (#590) * - app version = 7.0.20 - updated some shared imports - added amalgamation as supported filing type - added amalgamation template to Filing History List - added amalgamation application to Todo List - added amalgamation sub-types to enum - added amalgamation to API Filing interface - added amalgamation to Task Todo interface - added an enum mixin method - added enum utilities methods - updated filingTypeToName() - replaced overly complex "currentFilingStatus" with filing id check - refactored entityStatus to identify the application type (amal/IA/reg) - updated unit tests * - applied fix for #18736 * - added displayName to draft app code - used displayName in TodoList.vue - used displayName in EntityHeader.vue * - added check for amalgamation type * 18024 Finish AGM Extension UI implementation (#594) * Fix AGM extension api payload * Update version to 7.0.21 * Fix unit test * feat: digital credentials gate (#595) * feat: gate digital credentials from API Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump package version Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18534 Amalg unit tests + small fixes + more typing (#596) * - app version = 7.0.23 - enabled strict typing - misc small fixes/cleanup - fixed filed IA blurb - added amalgamation allowable action - added unit tests - added some typing to unit tests * wip * 18782 fix error in wrong agm due date (#598) fix error in wrong agm due date * 17869 - Adding CFS account number BUSINESS-FILINGS-UI (#565) * 17869 - Adding CFS account number BUSINESS-FILINGS-UI Signed-off-by: AbrahamRostampoor <Mohammadebrahim.Rostampoor@gov.bc.ca> * cfs Update * Latest Updates * Formatting * Updated package.json and package-lock.json version number --------- Signed-off-by: AbrahamRostampoor <Mohammadebrahim.Rostampoor@gov.bc.ca> * 18833 agm ext calc (#599) * 18833-AGM-extension-calculation * Updated package.json * Added getter that takes argument for AGM year. Working test case for getTotalAgmExtension method * 18805+18979 Amalgamate Button + Moved to amalgamationApplication + Selection Panel (#600) * Implemented Amalgamate button + changed amalgamation to amalgamationApplication * Implemented Amalgamation Selection Panel * Updated package version after rebase * Added safe value + deleted unnecessary comment * Updated in response to Sev's comments * another small update in response to Sev's comment * missing import * small updates in response to Sev's comment * removed unused imports * changed disabled condition * Create draft amalgamation + redirect + misc. fixes/updates (#601) * Create draft amalgamation + redirect + misc. fixes/updates * Fixed comments * Fixed in response to Sev's comments + added unit tests * fixed typos * Updated Amalgamation Selection in response to UXA notes (#602) * Updated in response to Yui's observations * Updated in response to Sev's comments * 19005 Implemented historical - amalgamation reason text (#604) - app version = 7.0.30 - updated some code comments - added AmalgamatedInto interface object - added enum mixin and utility functions - added some business store getters - refactored getReasonText() and added case for amalgamation - cast some parameters to pre-empt code errors - added/updated unit tests Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 16967 Admin Freeze should not show on ledger (#603) * hide admin_freeze filing * update feature * fix small * fix lint issue * update feature * update test and app version * fix lint issue * update app version * 16967 Set missing `displayLedger` property for draft apps (#605) - app version = 7.0.32 - set missing draft app property - updated some interface comments Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19190 Fixed "return to MBR" issues (#607) - app version = 7.0.33 - only show "return to MBR" for temp amalgamations - only show "return to MBR" for temp incorporation applications - only show "return to MBR" for temp registrations Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19291 Implemented "future effective amalgamation" alert (#608) * - app version = 7.0.34 - moved some "unknown" from script to template - added amalgamation alert component - added optional data object to business warnings interface - added getter for future effective amalgamation warning - added alert to dashboard - fixed some route type errors - added test suite - updated unit tests * - updated [Unknown] -> [unknown] --------- Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * Added amalgamation FF check (#610) * Added amalgamation FF check * Fixed unit tests * typo * 19209 Pre-populate TING business + error handling (#609) - app version = 7.0.36 - fixed some getLegalType types - added generic Technical Error Dialog (per Yui) - added amalgamation enums - refactored Legal Service function for better result and error handling - added dialog to Amalgamation Selection component - refactored Amalgamation Selection for error handling and to pre-populate TING business - added test suite for new dialog Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19204 Fixed whitespace between sub-title and body (#612) - app version = 7.0.37 - removed min-height (which simulated padding when it's a single line) - added top margin (whitespace whether it's a single or wrapped line) - added top padding to body for all filings Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * Bump vite from 4.3.9 to 4.5.2 (#613) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.3.9 to 4.5.2. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.2/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.2/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 19085 - enable horizontal and vertical amalgamation launch (#614) * 19085-enable horizontal and vertical amal * 19085-update package version * 19085-fix lint issues * 19085-add comments * 19085-updates based on review * Update .eslintrc.js - added eslint rule * 19038 - unit tests for short form amalgamations (#616) * 19038 - add unit tests for short form * 19038 - more tests for short form amalgamations * 19038 - update package version * 19038 - fix lint issues * 19038 - more unit tests * 19038 - fix lint warning * 19038 - fix unit test * 19038 - revert fix * 19038 - updates based on review * 19038 - add comment * Added correctNameOption to draft filing. (#617) * Added correctNameOption to draft filing. * Added legalName to amalgamationApplication.nameRequest * Added correct route to short-form and regular amalgamation * Updated enums to v1.1.7 * 19047 Updated unit tests (#618) - app version = 7.0.41 - added tests to check alerts - added test to check historical badge and reason for amalgamation - fixed involuntary dissolution test - misc cleanup Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19781 Updated draft amalgamation task/filing display name (#620) * - app version = 7.0.42 - refactored aboutText into aboutApp and aboutSbc - added special cases for displaying draft amalgamation task/filing name - now display aboutApp in console - updated filingTypeToName() - updated unit tests * - deleted local font preload --------- Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19714-ff-put-back-on (#621) * 19714-ff-put-back-on * 19714-ff-put-back-on * Rebased. Fixed indentations, restored unit tests * Updated allowable actions * Fixed typo and restored united test menu item * Restored order for menu items * Restored whitespaces * 19823 and 19843 - added support for amalg correction + preset numbered option for reg amalg (#622) - app version = 7.0.44 - added conditional disable for amalgamation correction - redirect to Edit UI for amalgamation correction - cleaned up AmalgamationSelection.vue - pre-set numbered option for regular amalgamation draft - updated (but did not fix) unit test Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19823 Revert pre-set numbered option for regular amalgamation (#623) - app version = 7.0.45 - removed numbered option for non-short-form (ie, regular) amalgamation Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19921 Update LegalObligation logic (#625) - app version = 7.0.46 - don't show LegalObligation if business is not Active - show LegalObligation for new business - updated unit tests Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 15600 display correct name for SP/GP (#548) * 15600 display correct name for SP/GP * Updated package.json * Fixed ES lindt errors * Updated for PR. Removed operatingName object * Updated to use getEntityName * Added operatingName as a new store property * Updated EntityHeader.spec to pass test. * Added unit test * Added changes for PR * For PR. Removed operatingName property * Removed trailing spaces * Updated for PR - Added test cases * Changed to valid business ID * 19034 rebase legal name branch (#615) * 17347 - Move COA and COD corrections for COOPS into the generic correction wo… (#549) Move COA and COD corrections for COOPS into the generic correction workflow. * 17347 - Add in isCoop check for resume button. (#550) * Add in isCoop check for resume button. * Fix code complexity issues * Fix code complexity * 18027 AGM Location change (#551) * 18027-agm location details 1 * 18027-agm location details 2 * 18027-agm location details 3 * 18027-update package version * 18027-agm location details 4 * 18027-agm location details 5 * 18027-agm location details 6 * 18027-agm location details 7 * 18027-agm location details 8 * 18027-agm location details 9 * AGM Location Change First PR (#553) * AGM Location Change First PR * small adjustment * small fixes in response to Sev's comments * Fixed in response to Sev's comments * AGM Location Change second PR (#554) * AGM Location Change second PR * Fixed unit tests * fixed in response to Sev's comments * fixed error text * AGM Location Change Third PR (#555) * Created + updated unit tests * Fixed EntityMenu test from ticket part 1 * Fixed lint errors * Fixes in response to Sev's comments * fixed lint issues * Fixed in reponse to Sev's comments * removed unnecessary test code * AGM Location Change 4th and final PR (#556) * AGM Location Change 4th and final PR * changed method name * changed comment * fixed lint error * removed unnecessary line * Fix in response to Sev's comment * Fixed in response to Sev's comment + simplified logic * Removed staff payment dialog * update agm location variable * AGM Location Change 5th PR for styling issues (#559) * AGM Location Change 5th PR for styling issues * fixed left spacing of ripple * fixed small lint issue * fixed in response to Sev's comments * Pre-populate the certify block when logged in user is not staff * Moved user's full name to store to minimize API calls * Fixed in response to Sev's comments * Added optional chaining * 16764 - Fixed end user certify block * Reverted currentuser interface + fixed accordingly * Prevent from showing undefined in certified block * Prevented undefined from showing in certify block in agm location change * 18024 Incremental AGM extension work (#558) - app version = 6.9.5 - imported shared DatePicker component - renamed a base class - added a base class - saved user info into store - added initial AboutTheBusiness sub-component - added initial AgmExtensionEvaluation sub-component - added AgmExtensionHelp sub-component - added initial ExtensionRequest sub-component - added VcardTemplate - updated tooltip text - updated FF - added AgmExtEval interface - renamed RootStateIF -> AuthenticationStateIF - renamed StateIF -> RootStateIF - added DateMixin function for DatePicker component - updated fetchUserInfo to return object (not Axios response) - added missing default FF - deleted obsolete dialog, transition, buttons, methods, CSS from AGM Extension - added help section - added initial sub-components to AGM Extension - updated intro text - updated some whitespace - updated filing code - removed delay in mounted() in AGM Extension - updated onHaveChanges() watcher in AGM Extension - pre-populated CertifiedBy - deleted obsolete transition, methods, CSS from AGM Extension - removed delay in mounted() in AGM Location Chg - updated onHaveChanges() watcher in AGM Location Chg - updated unit tests - misc cleanup * Make Certify block non-editable if non-staff user (AGM Filings) (#564) Make certify block non-editable if non-staff user * feat: digital business card (#566) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * 18161 Updated in response to UXA notes (#567) * Updated in response to UXA notes * package version update after rebasing * 16733 undefined placeholder for federal (#569) * For PR. Added Federal keyword * Restored changes * For PR. Added federal placeholder * Updated package.json * Fixed eslindt errors * Restored space for separation of function * 18024 Incremental AGM Extension changes (#568) - app version = 7.0.3 - removed obsolete dialogs + code - stopped watching changes to certify data - indent cleanup - added initial message box + CSS - app version = 7.0.2 - added NotEligibleExtension dialog - removed waiveFees=true from AGM Extension - removed waiveFees=true from AGM Location Chg - added some unit test suites - worked on unit tests - misc cleanup - used allowable actions value from Legal API - show alert on error starting app - fixed some comments - added showErrors prop to ExtensionRequest component * 18272 Add unit test for AboutTheBusiness component (#570) * Add unit test for AboutTheBusiness * Update AboutTheBusiness tests * Incorporate Sev's test for AboutTheBusiness * Check long string date in test * 17917 Added placeholder for null values (#572) Updated Version * 18024 Incremental AGM Extension changes (#571) * - app version = 7.0.6 - updated ExtensionRequest validation styling - misc small fixes - updated unit tests - added isEligible to interface - show dialog if not eligible - expanded unit tests * wip * feat: digital credentials detailed instructions (#575) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix spacing Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: some cleanup Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: credential detailed instructions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: add tags to components Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * 18513 Fixed jerky expandable help transition (#576) - app version = 7.0.7 - imported latest ExpandableHelp component (to fix jerky transition) * Extension Request Scenario 1 (#577) * Extension Request Scenario 1 * Lots of updates after rebasing * package version update after rebasing * cleanup * Fixed unit test * Updated in response to Sev's PR comments * Removed fallback logic from subtractDates in dateutilities * lint fix * 18369 agm extension evaluation (#573) * 18369 agm evaluation component setup * 18369 agm evaluation component setup * 18369 added logic to agm extension evaluation component and unit testing * removed unnecessary data from agmExtensionEvaluation * removed rootStore values since unused * removed unused pinia * misc edit * added yellow evaluation box unit test * fixed expected value * removed redundant testing in yellow-box verification * added idea for template conditionals in the component * rearranged data variables in the conditionals * removed now unused props * misc fix * added new testing for agm extension evaluation * removed Text string variables from AgmExtension.vue * fized testing error * fixed silly typo * 17159 Update fetchNameRequest (#579) update fetchNameRequest * 18273 Extension Request Scenario 2 (#580) * Extension Request Scenario 2 * Fix lint issue * Fix min expiry date * Restore comment on isFirstAgm * Move currentDate to data object * Fix agm year not clearing on firstAgm change * Update watcher comment * Update version to 7.0.10 and fix unit tests * 18469 Capitalize AGM in output titles (#581) - app version = 7.0.11 - added missing cases for AGM filings - added special case to convert "Agm" to "AGM" - fixed a lint warning * 18274 Updated To Do List and Recent Filing History (#584) * - app version = 7.0.12 * - added AGM Extension as a filing in Filing History List - added AGM Extension as cancellable Todo Item - added AGM Extension filing component - fixed wrong enum in Entity Menu - added AGM Extension to Enum Utilities - fixed misc type warnings * - added agmExtension fields to ApiFilingIF - updated AGM Extension filing JSON per schema * - fixed unit test * - added FHL unit tests * Update FilingHistoryList1.spec.ts - updated displayName for AGM filings in unit tests (no functional impact, no dependencies) * 18369 changed the duration of extension messages in accordance with U… (#582) * 18369 changed the duration of extension messages in accordance with UX design * fixed tests for new evaluation messages. * fixed date getters and added expiry date * fixed getters and fixed typo * fixed reactive expiry date * update package json * 18204 disable restore based on ff (#583) * For PR added FF parameters * Fixed && added test cases for historical * Updated package version * chore: update content and images (#586) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix spacing Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: some cleanup Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: credential detailed instructions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: add tags to components Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: minor content updates Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package version Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * fix: DBC feature should be available for historical companies (#587) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284: digital business card (#552) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18284 Updated CSP (#561) - added wss://*.gov.bc.ca to connect-src * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: digital business card (#562) * refactor: CredentialsLanding component: add heading card Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add supplemental cards Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: add image and word wrapping Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsLanding component: link styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: CredentialsStepper component: deprecate routes Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: CredentialsStepper component: function naming Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: split into sub components Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add web socket component Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: re-add credential table Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: DigitalCredentials component: update types and imports Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add revocation dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: DigitalCredentials component: add replacement dialogs Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: devcontainer config Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump version number Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: rename route for specificity Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: ran linter and fixed linting errors Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: make interface field optional Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert auto-formatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: contain dialogs for DigitalCredentials component Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix code smells Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: revert autoformatting Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update wording and styling to align with UX Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: feature flag credentials feature with mixin Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add TOU dialog Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix test failiures and code comments * chore: cleaup Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: mixin to access digital credential feature Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu styling Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: add loading indicators to digital credential route pages Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: reset dialog and functions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: returl null if undefined Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: beef up conditional checks Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: spelling error Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: cleanup spelling and handle edge cases Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: failing tests Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: entity menu logic Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: remove websocket support in favour of interval polling Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove console log Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address PR comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: remove unused import Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: build and test failures Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * Update EntityMenu.spec.ts * chore: remove web socket references Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: fix spacing Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: some cleanup Signed-off-by: Akiff Manji <amanji@petridish.dev> * feat: credential detailed instructions Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: add tags to components Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: minor content updates Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package version Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: DBC feature should be available for historical organization Signed-off-by: Akiff Manji <amanji@petridish.dev> * refactor: move logic into getter Signed-off-by: Akiff Manji <amanji@petridish.dev> * fix: DBC feature should only be available to BCSC user Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package version Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: update package lock file Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> * 18273+18558 Extension Request Cleanup and Tests (#585) * Restore comment on isFirstAgm * Extension Request Cleanup and Tests * Update comment * Use isFirstAgm from data for validity * Remove debugging code * Fix initial state on agm extension evaluation * Fix typo * Set missing values for EmptyAgmExtEval * Add better validation for AGM extension request * Prevent future year for agm year * Update version to 7.0.17 * Fix some of the unit tests * Removed impossible test scenario * Add overflow-auto class * Update date-picker version to 1.2.38 * Remove optional from agm extension interface * Remove console.log * 18024 - Fixed AGM Extensions in TODO List (#591) * 18273+18558 Update Extension Request component UI (#592) * Extension Request Cleanup and Tests * Remove debugging code * Remove optional from agm extension interface * Remove console.log * Update Extension Request component UI * 18534 Changes to support amalgamation applications (#590) * - app version = 7.0.20 - updated some shared imports - added amalgamation as supported filing type - added amalgamation template to Filing History List - added amalgamation application to Todo List - added amalgamation sub-types to enum - added amalgamation to API Filing interface - added amalgamation to Task Todo interface - added an enum mixin method - added enum utilities methods - updated filingTypeToName() - replaced overly complex "currentFilingStatus" with filing id check - refactored entityStatus to identify the application type (amal/IA/reg) - updated unit tests * - applied fix for #18736 * - added displayName to draft app code - used displayName in TodoList.vue - used displayName in EntityHeader.vue * - added check for amalgamation type * 18024 Finish AGM Extension UI implementation (#594) * Fix AGM extension api payload * Update version to 7.0.21 * Fix unit test * feat: digital credentials gate (#595) * feat: gate digital credentials from API Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: bump package version Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18534 Amalg unit tests + small fixes + more typing (#596) * - app version = 7.0.23 - enabled strict typing - misc small fixes/cleanup - fixed filed IA blurb - added amalgamation allowable action - added unit tests - added some typing to unit tests * wip * feat: digital credentials TOU (#597) * feat: Terms of Use for digital credentials Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments and bump package version Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> * chore: address code review comments Signed-off-by: Akiff Manji <amanji@petridish.dev> --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> * 18782 fix error in wrong agm due date (#598) fix error in wrong agm due date * 17869 - Adding CFS account number BUSINESS-FILINGS-UI (#565) * 17869 - Adding CFS account number BUSINESS-FILINGS-UI Signed-off-by: AbrahamRostampoor <Mohammadebrahim.Rostampoor@gov.bc.ca> * cfs Update * Latest Updates * Formatting * Updated package.json and package-lock.json version number --------- Signed-off-by: AbrahamRostampoor <Mohammadebrahim.Rostampoor@gov.bc.ca> * 18833 agm ext calc (#599) * 18833-AGM-extension-calculation * Updated package.json * Added getter that takes argument for AGM year. Working test case for getTotalAgmExtension method * 18805+18979 Amalgamate Button + Moved to amalgamationApplication + Selection Panel (#600) * Implemented Amalgamate button + changed amalgamation to amalgamationApplication * Implemented Amalgamation Selection Panel * Updated package version after rebase * Added safe value + deleted unnecessary comment * Updated in response to Sev's comments * another small update in response to Sev's comment * missing import * small updates in response to Sev's comment * removed unused imports * changed disabled condition * Create draft amalgamation + redirect + misc. fixes/updates (#601) * Create draft amalgamation + redirect + misc. fixes/updates * Fixed comments * Fixed in response to Sev's comments + added unit tests * fixed typos * Updated Amalgamation Selection in response to UXA notes (#602) * Updated in response to Yui's observations * Updated in response to Sev's comments * 19005 Implemented historical - amalgamation reason text (#604) - app version = 7.0.30 - updated some code comments - added AmalgamatedInto interface object - added enum mixin and utility functions - added some business store getters - refactored getReasonText() and added case for amalgamation - cast some parameters to pre-empt code errors - added/updated unit tests Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 16967 Admin Freeze should not show on ledger (#603) * hide admin_freeze filing * update feature * fix small * fix lint issue * update feature * update test and app version * fix lint issue * update app version * Update filingHistoryListStore.ts - changed "displayLedger" check from falsy to False * 16967 Set missing `displayLedger` property for draft apps (#605) - app version = 7.0.32 - set missing draft app property - updated some interface comments Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19190 Fixed "return to MBR" issues (#607) - app version = 7.0.33 - only show "return to MBR" for temp amalgamations - only show "return to MBR" for temp incorporation applications - only show "return to MBR" for temp registrations Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> * 19291 Implemented "future effective amalgamation" alert (#608) * - app v… * npm i after rebase * Fixed rebase issues * Fixed in response to Sev's comment * Fixed amalgamation filings titles in response to Sev's comment --------- Signed-off-by: Akiff Manji <amanji@petridish.dev> Signed-off-by: AbrahamRostampoor <Mohammadebrahim.Rostampoor@gov.bc.ca> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: ketaki-deodhar <116035339+ketaki-deodhar@users.noreply.github.com> Co-authored-by: Séverin Beauvais <severinbeauvais@users.noreply.github.com> Co-authored-by: Akiff Manji <akiff.manji@gmail.com> Co-authored-by: jamespaologarcia <james.paolo.p.garcia@gmail.com> Co-authored-by: leodube-aot <122323255+leodube-aot@users.noreply.github.com> Co-authored-by: Kevin Zhang <54437031+kzdev420@users.noreply.github.com> Co-authored-by: Paul <144158015+PaulGarewal@users.noreply.github.com> Co-authored-by: Akiff Manji <amanji@petridish.dev> Co-authored-by: Shaoyun Tong <144159934+tshyun24@users.noreply.github.com> Co-authored-by: AbrahamRostampoor <144154569+AbrahamRostampoor@users.noreply.github.com> Co-authored-by: Severin Beauvais <severin.beauvais@gov.bc.ca> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Travis Semple <travis8814@gmail.com> --- .eslintrc.js | 1 + index.html | 1 - package-lock.json | 27 +- package.json | 2 +- src/App.vue | 13 +- .../FilingHistoryList/FilingTemplate.vue | 5 +- .../FilingHistoryList/HeaderActions.vue | 7 +- src/components/Dashboard/LegalObligation.vue | 13 +- src/enums/amalgamationEnums.ts | 3 +- src/main.ts | 3 +- src/mixins/allowable-actions-mixin.ts | 7 +- src/services/enum-utilities.ts | 6 +- src/stores/rootStore.ts | 5 +- src/utils/feature-flags.ts | 1 + src/views/AmalgamationSelection.vue | 77 +++- src/views/Dashboard.vue | 2 +- tests/unit/AmalgamationFiling.spec.ts | 69 ++- tests/unit/AmalgamationSelection.spec.ts | 26 +- tests/unit/App.spec.ts | 424 +++++++++++++++++- tests/unit/Dashboard.spec.ts | 121 ++++- tests/unit/EntityHeader.spec.ts | 153 +++++-- tests/unit/FilingHistoryList1.spec.ts | 87 +++- tests/unit/FilingHistoryList2.spec.ts | 51 ++- .../unit/LedgerConsentContinuationOut.spec.ts | 2 +- tests/unit/LedgerContinuationOut.spec.ts | 2 +- tests/unit/LegalObligation.spec.ts | 35 +- tests/unit/StaffNotation.spec.ts | 82 ++++ tests/unit/TodoList1.spec.ts | 164 ++++++- tests/unit/filings.json | 57 ++- vite.config.js | 11 +- 30 files changed, 1320 insertions(+), 137 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 9f10119de..c79a01dcf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -24,6 +24,7 @@ module.exports = { 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'max-len': ['warn', { code: 120 }], 'vue/attribute-hyphenation': 'off', + 'vue/component-name-in-template-casing': ['error', 'PascalCase'], 'vue/multi-word-component-names': 'off', 'vue/no-deprecated-filter': 'warn', 'vue/no-deprecated-slot-scope-attribute': 'warn', diff --git a/index.html b/index.html index a94429929..f296a7cfe 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,6 @@ <title>BC Business Registry</title> <link rel="icon" href="dummy-not-used-do-not-remove"> <link rel="icon" href="/favicon.png"> - <link rel="preload" href="/fonts/materialdesignicons-webfont.927457ed.woff2" as="font" type="font/woff2" crossorigin> <link rel="stylesheet" href="/css/addresscomplete-2.30.min.css"> <script type="text/javascript" src="/js/addresscomplete-2.30.min.js" defer></script> </head> diff --git a/package-lock.json b/package-lock.json index 9d1277f28..51d76812b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@bcrs-shared-components/court-order-poa": "2.1.4", "@bcrs-shared-components/date-picker": "1.2.39", "@bcrs-shared-components/document-delivery": "1.2.1", - "@bcrs-shared-components/enums": "1.1.4", + "@bcrs-shared-components/enums": "1.1.7", "@bcrs-shared-components/expandable-help": "1.0.1", "@bcrs-shared-components/folio-number-input": "1.1.18", "@bcrs-shared-components/interfaces": "1.1.2", @@ -302,13 +302,18 @@ } }, "node_modules/@bcrs-shared-components/enums": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@bcrs-shared-components/enums/-/enums-1.1.4.tgz", - "integrity": "sha512-EwHjFTfIiOJLzU3yWSPJnxfplF+cgQSPGFE+6T1jo/7aVpLPMw/cSSGi3cJIr3h7SjyQd8wTxsFP4QDVgCrH7A==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/enums/-/enums-1.1.7.tgz", + "integrity": "sha512-WORgcK1YS/AssOI6sbuSQv4f13wZTQR6td7+gcghgAl34WNyO5HT0Mu2VfVGbD2zXfIYDm5jXTj2Dg6dkxpouA==", "dependencies": { - "@bcrs-shared-components/corp-type-module": "^1.0.14" + "@bcrs-shared-components/corp-type-module": "^1.0.15" } }, + "node_modules/@bcrs-shared-components/enums/node_modules/@bcrs-shared-components/corp-type-module": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@bcrs-shared-components/corp-type-module/-/corp-type-module-1.0.15.tgz", + "integrity": "sha512-g/TcNSR7zJsG2lBjn/NnM+/+k7dJzhAiy5PiPj0ObN56bUV1PrUWVVlg5lz4/JZUEAZetWhwnyAzPVGsn7kr1w==" + }, "node_modules/@bcrs-shared-components/expandable-help": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@bcrs-shared-components/expandable-help/-/expandable-help-1.0.1.tgz", @@ -501,7 +506,7 @@ "dev": true, "optional": true, "os": [ - "linux" + "android" ], "engines": { "node": ">=12" @@ -3159,14 +3164,8 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "license": "ISC", + "optional": true }, "node_modules/function-bind": { "version": "1.1.2", diff --git a/package.json b/package.json index 14a1b11c5..954da0ff9 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@bcrs-shared-components/court-order-poa": "2.1.4", "@bcrs-shared-components/date-picker": "1.2.39", "@bcrs-shared-components/document-delivery": "1.2.1", - "@bcrs-shared-components/enums": "1.1.4", + "@bcrs-shared-components/enums": "1.1.7", "@bcrs-shared-components/expandable-help": "1.0.1", "@bcrs-shared-components/folio-number-input": "1.1.18", "@bcrs-shared-components/interfaces": "1.1.2", diff --git a/src/App.vue b/src/App.vue index b96c571c7..25c866e27 100644 --- a/src/App.vue +++ b/src/App.vue @@ -299,7 +299,9 @@ export default { /** The About text. */ aboutText (): string { - return import.meta.env.ABOUT_TEXT + const aboutApp = import.meta.env.ABOUT_APP + const aboutSbc = import.meta.env.ABOUT_SBC + return `${aboutApp}<br>${aboutSbc}` }, /** Get banner text. */ @@ -720,7 +722,9 @@ export default { const filingName = EnumUtilities.filingTypeToName(header.name, null, data.type) // save display name for later - filing.displayName = `${description}${dba}${filingName}` + filing.displayName = EnumUtilities.isTypeAmalgamation(header) + ? filingName + : `${description}${dba}${filingName}` // add this as a task item const taskItem: ApiTaskIF = { @@ -746,6 +750,9 @@ export default { const description = GetCorpFullDescription(data.nameRequest.legalType) const filingName = EnumUtilities.filingTypeToName(header.name, null, data.type) + const displayName = EnumUtilities.isTypeAmalgamation(header) + ? filingName + : `${description} ${filingName}` // add this as a filing item const filingItem = { @@ -754,7 +761,7 @@ export default { commentsCount: application.commentsCount, commentsLink: application.commentsLink, displayLedger: application.displayLedger, - displayName: `${description} ${filingName}`, + displayName, documentsLink: application.documentsLink, effectiveDate: this.apiToUtcString(header.effectiveDate), filingId: header.filingId, diff --git a/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue b/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue index 0c13d6296..e556f8c6d 100644 --- a/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue +++ b/src/components/Dashboard/FilingHistoryList/FilingTemplate.vue @@ -53,7 +53,10 @@ </div> </v-expansion-panel-header> - <v-expansion-panel-content class="pt-5"> + <v-expansion-panel-content + eager + class="pt-5" + > <slot name="body"> <!-- is this a generic paid (not yet completed) filing? --> <div diff --git a/src/components/Dashboard/FilingHistoryList/HeaderActions.vue b/src/components/Dashboard/FilingHistoryList/HeaderActions.vue index b9e01d424..ef2e4018f 100644 --- a/src/components/Dashboard/FilingHistoryList/HeaderActions.vue +++ b/src/components/Dashboard/FilingHistoryList/HeaderActions.vue @@ -128,10 +128,10 @@ export default class HeaderActions extends Mixins(AllowableActionsMixin) { conditions[3] = () => (EnumUtilities.isTypeIncorporationApplication(this.filing) && !this.isBenBcCccUlc && !this.isCoop) conditions[4] = () => (EnumUtilities.isTypeChangeOfRegistration(this.filing) && !this.isFirm) - conditions[5] = () => (EnumUtilities.isTypeCorrection(this.filing) && - !this.isFirm && !this.isBenBcCccUlc && - !this.isCoop) + conditions[5] = () => (EnumUtilities.isTypeCorrection(this.filing) && !this.isFirm && + !this.isBenBcCccUlc && !this.isCoop) conditions[6] = () => (EnumUtilities.isTypeRegistration(this.filing) && !this.isFirm) + conditions[7] = () => (EnumUtilities.isTypeAmalgamation(this.filing) && !this.isBenBcCccUlc) // check if any condition is True return conditions.some(condition => condition()) @@ -142,6 +142,7 @@ export default class HeaderActions extends Mixins(AllowableActionsMixin) { // see also TodoList.vue:doResumeFiling() switch (filing?.name) { case FilingTypes.ALTERATION: + case FilingTypes.AMALGAMATION_APPLICATION: case FilingTypes.CHANGE_OF_REGISTRATION: case FilingTypes.CORRECTION: case FilingTypes.INCORPORATION_APPLICATION: diff --git a/src/components/Dashboard/LegalObligation.vue b/src/components/Dashboard/LegalObligation.vue index 24c9360ca..a9f713a73 100644 --- a/src/components/Dashboard/LegalObligation.vue +++ b/src/components/Dashboard/LegalObligation.vue @@ -81,22 +81,29 @@ </template> <script lang="ts"> -import { Component, Mixins } from 'vue-property-decorator' +import { Component, Mixins, Watch } from 'vue-property-decorator' import { Getter } from 'pinia-class' import ResourceLookupMixin from '@/mixins/resource-lookup-mixin' -import { useRootStore } from '@/stores' +import { useBusinessStore, useRootStore } from '@/stores' @Component({}) export default class LegalObligation extends Mixins(ResourceLookupMixin) { + @Getter(useBusinessStore) isActive!: boolean @Getter(useRootStore) isBusinessWithNoMaintenanceFilings!: boolean readMoreFlag = false - showLegalObligation = true + showLegalObligation = null as boolean /** Whether this entity is a business (and not a temporary registration). */ get isBusiness (): boolean { return !!sessionStorage.getItem('BUSINESS_ID') } + + /** Sets initial value of showLegalObligation (and any changes). */ + @Watch('isActive', { immediate: true }) + onIsActiveChanged () { + this.showLegalObligation = this.isActive + } } </script> diff --git a/src/enums/amalgamationEnums.ts b/src/enums/amalgamationEnums.ts index 28573900a..8cd29baad 100644 --- a/src/enums/amalgamationEnums.ts +++ b/src/enums/amalgamationEnums.ts @@ -1,6 +1,7 @@ export enum AmlRoles { AMALGAMATING = 'amalgamating', - HOLDING = 'holding' + HOLDING = 'holding', + PRIMARY = 'primary' } export enum AmlTypes { diff --git a/src/main.ts b/src/main.ts index 51333ac44..3d9189e6b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -97,7 +97,8 @@ async function start () { const router = getVueRouter() // start Vue application - console.info('Starting app...') // eslint-disable-line no-console + const aboutApp = import.meta.env.ABOUT_APP + console.info(`Starting ${aboutApp}...`) // eslint-disable-line no-console new Vue({ vuetify: new Vuetify({ iconfont: 'mdi', diff --git a/src/mixins/allowable-actions-mixin.ts b/src/mixins/allowable-actions-mixin.ts index 2262e9f75..42f1e93d0 100644 --- a/src/mixins/allowable-actions-mixin.ts +++ b/src/mixins/allowable-actions-mixin.ts @@ -118,16 +118,17 @@ export default class AllowableActionsMixin extends Vue { case AllowableActions.LIMITED_RESTORATION_EXTENSION: { return !!GetFeatureFlag('supported-restoration-entities')?.includes(this.getLegalType) && - this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_EXTENSION) + this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_EXTENSION) } case AllowableActions.LIMITED_RESTORATION_TO_FULL: { return !!GetFeatureFlag('supported-restoration-entities')?.includes(this.getLegalType) && - this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_TO_FULL) + this.isAllowedFiling(FilingTypes.RESTORATION, FilingSubTypes.LIMITED_RESTORATION_TO_FULL) } case AllowableActions.PUT_BACK_ON: { - return this.isAllowedFiling(FilingTypes.PUT_BACK_ON) + return this.isAllowedFiling(FilingTypes.PUT_BACK_ON) && + !!GetFeatureFlag('supported-put-back-on-entities')?.includes(this.getLegalType) } case AllowableActions.RECORD_CONVERSION: { diff --git a/src/services/enum-utilities.ts b/src/services/enum-utilities.ts index 8972c61c4..36a9fd527 100644 --- a/src/services/enum-utilities.ts +++ b/src/services/enum-utilities.ts @@ -354,13 +354,13 @@ export default class EnumUtilities { case FilingTypes.ALTERATION: return FilingNames.ALTERATION case FilingTypes.AMALGAMATION_APPLICATION: if (subType === FilingSubTypes.AMALGAMATION_HORIZONTAL) { - return `${FilingNames.AMALGAMATION_APPLICATION} - Horizontal` + return `${FilingNames.AMALGAMATION_APPLICATION} Short-form (Horizontal)` } if (subType === FilingSubTypes.AMALGAMATION_REGULAR) { - return `${FilingNames.AMALGAMATION_APPLICATION} - Regular` + return `${FilingNames.AMALGAMATION_APPLICATION} (Regular)` } if (subType === FilingSubTypes.AMALGAMATION_VERTICAL) { - return `${FilingNames.AMALGAMATION_APPLICATION} - Vertical` + return `${FilingNames.AMALGAMATION_APPLICATION} Short-form (Vertical)` } return FilingNames.AMALGAMATION_APPLICATION case FilingTypes.ANNUAL_REPORT: return FilingNames.ANNUAL_REPORT + (agmYear ? ` (${agmYear})` : '') diff --git a/src/stores/rootStore.ts b/src/stores/rootStore.ts index f0cf45d95..5c062bbf9 100644 --- a/src/stores/rootStore.ts +++ b/src/stores/rootStore.ts @@ -167,15 +167,16 @@ export const useRootStore = defineStore('root', { /** * This is used to show Legal Obligations only for a new business - * that has no tasks and hasn't filed anything yet (except their IA). + * that has no tasks and hasn't filed anything yet (except their application). **/ isBusinessWithNoMaintenanceFilings (state: RootStateIF): boolean { const filingHistoryListStore = useFilingHistoryListStore() return ( // no todo items (state.tasks.length === 0) && - // only the IA or Registraion filing history item + // only the Amalgamation or IA or Registration filing history item (filingHistoryListStore.getFilings.length === 1) && ( + EnumUtilities.isTypeAmalgamation(filingHistoryListStore.getFilings[0]) || EnumUtilities.isTypeIncorporationApplication(filingHistoryListStore.getFilings[0]) || EnumUtilities.isTypeRegistration(filingHistoryListStore.getFilings[0]) ) diff --git a/src/utils/feature-flags.ts b/src/utils/feature-flags.ts index 653d0b92c..9fee78c89 100644 --- a/src/utils/feature-flags.ts +++ b/src/utils/feature-flags.ts @@ -19,6 +19,7 @@ const defaultFlagSet: LDFlagSet = { 'supported-consent-continuation-out-entities': [], 'supported-agm-extension-entities': [], 'supported-agm-location-chg-entities': [], + 'supported-put-back-on-entities': [], 'supported-restoration-entities': [] } diff --git a/src/views/AmalgamationSelection.vue b/src/views/AmalgamationSelection.vue index 06c277f5b..926b7545c 100644 --- a/src/views/AmalgamationSelection.vue +++ b/src/views/AmalgamationSelection.vue @@ -51,12 +51,11 @@ <br> <p>Shareholders of the amalgamating corporations do not need to approve the amalgamation.</p> <div class="btn-div"> - <!-- TODO: Remove disabled when doing short form amalgamations --> <v-btn id="horizontal-short-form-btn" - disabled color="primary" large + @click="startAmalgamation(AmalgamationTypes.HORIZONTAL)" > <strong>Start Horizontal Short-form</strong> </v-btn> @@ -87,12 +86,11 @@ <br> <p>Shareholders of the amalgamating corporations do not need to approve the amalgamation.</p> <div class="btn-div"> - <!-- TODO: Remove disabled when doing short form amalgamations --> <v-btn id="vertical-short-form-btn" - disabled color="primary" large + @click="startAmalgamation(AmalgamationTypes.VERTICAL)" > <strong>Start Vertical Short-form</strong> </v-btn> @@ -133,7 +131,7 @@ id="regular-long-form-btn" color="primary" large - @click="startRegularAmalgamation()" + @click="startAmalgamation(AmalgamationTypes.REGULAR)" > <strong>Start Regular Long-form</strong> </v-btn> @@ -150,7 +148,7 @@ import { useBusinessStore, useConfigurationStore, useRootStore } from '@/stores' import { Action, Getter } from 'pinia-class' import { Component, Vue } from 'vue-property-decorator' import { CorpTypeCd } from '@bcrs-shared-components/corp-type-module' -import { AmalgamationTypes, FilingTypes } from '@bcrs-shared-components/enums' +import { AmalgamationTypes, CorrectNameOptions, FilingTypes } from '@bcrs-shared-components/enums' import { AmlRoles, AmlTypes, Routes } from '@/enums' import { LegalServices } from '@/services' import { navigate } from '@/utils' @@ -163,7 +161,10 @@ import { TechnicalErrorDialog } from '@/components/dialogs' }) export default class AmalgamationSelection extends Vue { @Getter(useConfigurationStore) getCreateUrl!: string + @Getter(useRootStore) getBusinessEmail!: string + @Getter(useRootStore) getFullPhoneNumber!: string @Getter(useBusinessStore) getIdentifier!: string + @Getter(useBusinessStore) getLegalName!: string @Getter(useBusinessStore) getLegalType!: CorpTypeCd @Getter(useBusinessStore) isBComp!: boolean @Getter(useBusinessStore) isBcCompany!: boolean @@ -172,6 +173,9 @@ export default class AmalgamationSelection extends Vue { @Action(useRootStore) setStartingAmalgamationSpinner!: (x: boolean) => void + // enum for template + readonly AmalgamationTypes = AmalgamationTypes + showErrorDialog = false /** Called when component is created. */ @@ -192,18 +196,21 @@ export default class AmalgamationSelection extends Vue { return 'Unknown' } - /** Called when Start Regular Long-form button is clicked. */ - async startRegularAmalgamation (): Promise<any> { + /** Called when Start amalgamtion (regular, horizontal and vertical) button is clicked. */ + async startAmalgamation (amalgamationType: AmalgamationTypes): Promise<any> { // Create a draft amalgamation application then redirect to Create UI. try { // show spinner since this is a network call this.setStartingAmalgamationSpinner(true) - const businessId = await this.createBusinessAA(AmalgamationTypes.REGULAR) - const amalgamationUrl = `${this.getCreateUrl}?id=${businessId}` + const businessId = await this.createBusinessAA(amalgamationType) + const route = this.isShortFormAmalgamation(amalgamationType) + ? 'amalg-short-information' + : 'amalg-reg-information' + const amalgamationUrl = `${this.getCreateUrl}${route}?id=${businessId}` navigate(amalgamationUrl) return } catch (error) { - console.log('Error: unable to amalgamate now =', error) + console.log('Error - unable to amalgamate now =', error) this.setStartingAmalgamationSpinner(false) this.showErrorDialog = true } @@ -216,7 +223,10 @@ export default class AmalgamationSelection extends Vue { */ private async createBusinessAA (type: AmalgamationTypes): Promise<string> { const accountId = +JSON.parse(sessionStorage.getItem('CURRENT_ACCOUNT'))?.id || 0 - const legalType = this.getLegalType + const email = this.isShortFormAmalgamation(type) ? this.getBusinessEmail : '' + const phone = this.isShortFormAmalgamation(type) ? this.getFullPhoneNumber : '' + const legalName = this.isShortFormAmalgamation(type) ? this.getLegalName : '' + const correctNameOption = this.isShortFormAmalgamation(type) ? CorrectNameOptions.CORRECT_AML_ADOPT : null const draftAmalgamationApplication = { filing: { @@ -225,18 +235,46 @@ export default class AmalgamationSelection extends Vue { accountId }, business: { - legalType + legalType: this.getLegalType }, amalgamationApplication: { nameRequest: { - legalType + legalName, + legalType: this.getLegalType, + correctNameOption }, - type + type, + contactPoint: { + email, + phone + } } } } as any - // if this is a regular amalgamation, pre-populate the current business as a TING + // For Horizontal amalgamation, set current business as the Primary business. + if (type === AmalgamationTypes.HORIZONTAL) { + draftAmalgamationApplication.filing.amalgamationApplication.amalgamatingBusinesses = [ + { + type: AmlTypes.LEAR, + role: AmlRoles.PRIMARY, + identifier: this.getIdentifier + } + ] + } + + // For Vertical amalgamation, set current business as the Holding business. + if (type === AmalgamationTypes.VERTICAL) { + draftAmalgamationApplication.filing.amalgamationApplication.amalgamatingBusinesses = [ + { + type: AmlTypes.LEAR, + role: AmlRoles.HOLDING, + identifier: this.getIdentifier + } + ] + } + + // For Regular amalgamation, set the current business as an amalgamating business. if (type === AmalgamationTypes.REGULAR) { draftAmalgamationApplication.filing.amalgamationApplication.amalgamatingBusinesses = [ { @@ -248,7 +286,7 @@ export default class AmalgamationSelection extends Vue { } // create the draft business record - // (throws an exception on error, which startRegularAmalgamation() will handle) + // (throws an exception on error, which startAmalgamation() will handle) const filing = await LegalServices.createDraftBusiness(draftAmalgamationApplication) // validate and return the identifier @@ -256,6 +294,11 @@ export default class AmalgamationSelection extends Vue { if (!identifier) throw new Error('Invalid business identifier') return identifier } + + /** Returns True if specified type is a short-form amalgamation. */ + private isShortFormAmalgamation (type: AmalgamationTypes): boolean { + return (type === AmalgamationTypes.HORIZONTAL || type === AmalgamationTypes.VERTICAL) + } } </script> diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue index 9415ed2a4..2c6c3b14f 100644 --- a/src/views/Dashboard.vue +++ b/src/views/Dashboard.vue @@ -296,10 +296,10 @@ export default { 'getIdentifier', 'hasComplianceWarning', 'hasMissingInfoWarning', - 'isFutureEffectiveAmalgamation', 'isAdminFrozen', 'isBenBcCccUlc', 'isFirm', + 'isFutureEffectiveAmalgamation', 'isGoodStanding', 'isHistorical', 'isPartnership', diff --git a/tests/unit/AmalgamationFiling.spec.ts b/tests/unit/AmalgamationFiling.spec.ts index 631211ec5..d5eb05032 100644 --- a/tests/unit/AmalgamationFiling.spec.ts +++ b/tests/unit/AmalgamationFiling.spec.ts @@ -16,13 +16,16 @@ const vuetify = new Vuetify({}) setActivePinia(createPinia()) const businessStore = useBusinessStore() -describe('Amalgamation Filing', () => { +describe('Regular amalgamation Filing', () => { let wrapper: Wrapper<AmalgamationFiling> beforeAll(() => { // init store businessStore.setLegalName('MY COMPANY') + // ensure tempRegNumber doesn't exist + sessionStorage.setItem('TEMP_REG_NUMBER', null) + wrapper = mount(AmalgamationFiling, { vuetify, propsData: { @@ -49,13 +52,73 @@ describe('Amalgamation Filing', () => { wrapper.destroy() }) - it('Displays expected content with a valid filing', () => { + it('Displays expected content with a valid filing', async () => { // verify content expect(wrapper.find('.item-header-title').text()).toBe('Amalgamation Application - Regular') expect(wrapper.find('.item-header-subtitle').text()).toContain('FILED AND PAID') expect(wrapper.find('.item-header-subtitle').text()).toContain('(filed by John Doe on Jan 1, 2021)') expect(wrapper.find('.item-header-subtitle').text()).toContain('EFFECTIVE as of Jan 1, 2021') + expect(wrapper.find('.view-details').text()).toBe('View Documents') + expect(wrapper.find('.hide-details').text()).toBe('Hide Documents') + + await wrapper.find('.view-details').trigger('click') + expect(wrapper.find('.completed-ia-details').exists()).toBe(true) + expect(wrapper.find('h4').text()).toBe('Amalgamation Complete') + expect(wrapper.find('p').text()).toBe('MY COMPANY has been successfully amalgamated.') + + wrapper.destroy() + }) +}) + +// Unit test assertions for Vertical amalgamation are pretty much the same except 'displayName' +// Reducing it to one as both tests are quite similar +describe('Horizontal amalgamation Filing', () => { + let wrapper: Wrapper<AmalgamationFiling> + + beforeAll(() => { + // init store + businessStore.setLegalName('MY COMPANY') + + wrapper = mount(AmalgamationFiling, { + vuetify, + propsData: { + filing: { + comments: [], + commentsCount: 0, + commentsLink: null, + displayName: 'Amalgamation Application - Horizontal', + documents: [], + documentsLink: 'dummy_link', + data: {}, + effectiveDate: new Date('2021-01-01 08:00:00 GMT'), + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.COMPLETED, + submittedDate: new Date('2021-01-01 08:00:00 GMT'), + submitter: 'John Doe' + }, + index: 0 + } + }) + }) + + afterAll(() => { + wrapper.destroy() + }) + + it('Displays expected content with a valid filing', async () => { + // verify content + expect(wrapper.find('.item-header-title').text()).toBe('Amalgamation Application - Horizontal') + expect(wrapper.find('.item-header-subtitle').text()).toContain('FILED AND PAID') + expect(wrapper.find('.item-header-subtitle').text()).toContain('(filed by John Doe on Jan 1, 2021)') + expect(wrapper.find('.item-header-subtitle').text()).toContain('EFFECTIVE as of Jan 1, 2021') + expect(wrapper.find('.view-details').text()).toBe('View Documents') + expect(wrapper.find('.hide-details').text()).toBe('Hide Documents') - // FUTURE: expand the panel and verify content + await wrapper.find('.view-details').trigger('click') + expect(wrapper.find('.completed-ia-details').exists()).toBe(true) + expect(wrapper.find('h4').text()).toBe('Amalgamation Complete') + expect(wrapper.find('p').text()).toBe('MY COMPANY has been successfully amalgamated.') + + wrapper.destroy() }) }) diff --git a/tests/unit/AmalgamationSelection.spec.ts b/tests/unit/AmalgamationSelection.spec.ts index 2d4ddf417..68a074a00 100644 --- a/tests/unit/AmalgamationSelection.spec.ts +++ b/tests/unit/AmalgamationSelection.spec.ts @@ -42,25 +42,27 @@ describe('AmalgamationSelection', () => { }) it('content of horizontal short form card is correct', () => { + useBusinessStore().setLegalType(CorpTypeCd.BC_COMPANY) + expect(wrapper.find('#start-horizontal-short-form-card > h2').text()).toBe('Horizontal short-form amalgamation') expect(wrapper.find('#start-horizontal-short-form-card > p').text()).toContain( 'A horizontal short-form amalgamation can be used if the amalgamating corporations') expect(wrapper.find('#start-horizontal-short-form-card > p').text()).toContain( 'are all wholly owned subsidiaries of the same holding body corporate.') expect(wrapper.find('#horizontal-short-form-btn').text()).toBe('Start Horizontal Short-form') - // TODO: Need to update this line when short form amalgamations are implemented - expect(wrapper.find('#horizontal-short-form-btn').classes()).toContain('v-btn--disabled') // disabled + expect(wrapper.find('#horizontal-short-form-btn').classes()).not.toContain('v-btn--disabled') }) it('content of vertical short form card is correct', () => { + useBusinessStore().setLegalType(CorpTypeCd.BC_COMPANY) + expect(wrapper.find('#start-vertical-short-form-card > h2').text()).toBe('Vertical short-form amalgamation') expect(wrapper.find('#start-vertical-short-form-card > p').text()).toContain( 'A vertical short-form amalgamation can be used if the subsidiary') expect(wrapper.find('#start-vertical-short-form-card > p').text()).toContain( 'corporations are wholly owned by the corporation they are amalgamating with.') expect(wrapper.find('#vertical-short-form-btn').text()).toBe('Start Vertical Short-form') - // TODO: Need to update this line when short form amalgamations are implemented - expect(wrapper.find('#vertical-short-form-btn').classes()).toContain('v-btn--disabled') // disabled + expect(wrapper.find('#vertical-short-form-btn').classes()).not.toContain('v-btn--disabled') }) it('content of regular long form card is correct', () => { @@ -85,4 +87,20 @@ describe('AmalgamationSelection', () => { expect(createFiling).toHaveBeenCalled() }) + + it('start horizontal short-form button clicked', async () => { + const createFiling = vi.spyOn((LegalServices as any), 'createDraftBusiness') + const button = wrapper.find('#horizontal-short-form-btn') + await button.trigger('click') + + expect(createFiling).toHaveBeenCalled() + }) + + it('start vertical short-form button clicked', async () => { + const createFiling = vi.spyOn((LegalServices as any), 'createDraftBusiness') + const button = wrapper.find('#vertical-short-form-btn') + await button.trigger('click') + + expect(createFiling).toHaveBeenCalled() + }) }) diff --git a/tests/unit/App.spec.ts b/tests/unit/App.spec.ts index 7b48c6e77..f677658c7 100644 --- a/tests/unit/App.spec.ts +++ b/tests/unit/App.spec.ts @@ -2238,7 +2238,7 @@ describe('App as a COMPLETED Registration Application', () => { }) }) -describe('App as a draft numbered amalgamation application', () => { +describe('App as a draft numbered regular amalgamation application', () => { let wrapper: Wrapper<Vue> beforeAll(() => { @@ -2311,7 +2311,7 @@ describe('App as a draft numbered amalgamation application', () => { wrapper.destroy() }) - it('fetches amalgamation filing properly', () => { + it('fetches regular amalgamation filing properly', () => { expect(rootStore.getNameRequest).toBeNull() expect(rootStore.getEntityStatus).toBe(EntityStatus.DRAFT_AMALGAMATION) expect(businessStore.getIdentifier).toBe('T123456789') @@ -2329,11 +2329,11 @@ describe('App as a draft numbered amalgamation application', () => { expect(rootStore.tasks[0].task.filing.header.name).toBe('amalgamationApplication') expect(rootStore.tasks[0].task.filing.header.status).toBe('DRAFT') expect(rootStore.tasks[0].task.filing.amalgamationApplication).not.toBeNull() - expect(rootStore.tasks[0].task.filing.displayName).toBe('BC Limited Company Amalgamation Application - Regular') + expect(rootStore.tasks[0].task.filing.displayName).toBe('Amalgamation Application (Regular)') }) }) -describe('App as a draft named amalgamation application', () => { +describe('App as a draft named regular amalgamation application', () => { let wrapper: Wrapper<Vue> beforeAll(() => { @@ -2425,7 +2425,7 @@ describe('App as a draft named amalgamation application', () => { wrapper.destroy() }) - it('fetches amalgamation filing properly', () => { + it('fetches regular amalgamation filing properly', () => { expect(rootStore.getNameRequest.nrNum).toBe('NR 1234567') expect(rootStore.getEntityStatus).toBe(EntityStatus.DRAFT_AMALGAMATION) expect(businessStore.getIdentifier).toBe('T123456789') @@ -2443,11 +2443,11 @@ describe('App as a draft named amalgamation application', () => { expect(rootStore.tasks[0].task.filing.header.name).toBe('amalgamationApplication') expect(rootStore.tasks[0].task.filing.header.status).toBe('DRAFT') expect(rootStore.tasks[0].task.filing.amalgamationApplication).not.toBeNull() - expect(rootStore.tasks[0].task.filing.displayName).toBe('BC Limited Company Amalgamation Application - Regular') + expect(rootStore.tasks[0].task.filing.displayName).toBe('Amalgamation Application (Regular)') }) }) -describe('App as a completed amalgamation application', () => { +describe('App as a completed regular amalgamation application', () => { // Intermediate scenario - still using Temp Reg Number let wrapper: Wrapper<Vue> @@ -2525,7 +2525,7 @@ describe('App as a completed amalgamation application', () => { wrapper.destroy() }) - it('fetches amalgamation filing properly', () => { + it('fetches regular amalgamation filing properly', () => { expect(rootStore.getNameRequest).toBeNull() expect(rootStore.getEntityStatus).toBe(EntityStatus.FILED_AMALGAMATION) expect(businessStore.getIdentifier).toBe('T123456789') @@ -2538,7 +2538,7 @@ describe('App as a completed amalgamation application', () => { // verify loaded filing expect(filingHistoryListStore.filings.length).toBe(1) expect(filingHistoryListStore.filings[0].businessIdentifier).toBe('T123456789') - expect(filingHistoryListStore.filings[0].displayName).toBe('BC Limited Company Amalgamation Application - Regular') + expect(filingHistoryListStore.filings[0].displayName).toBe('Amalgamation Application (Regular)') expect(filingHistoryListStore.filings[0].filingSubType).toBe(FilingSubTypes.AMALGAMATION_REGULAR) expect(filingHistoryListStore.filings[0].name).toBe('amalgamationApplication') expect(filingHistoryListStore.filings[0].status).toBe('COMPLETED') @@ -2546,3 +2546,409 @@ describe('App as a completed amalgamation application', () => { expect(filingHistoryListStore.filings[0].data.legalFilings).toEqual(['amalgamationApplication']) }) }) + +describe('App as a draft horizontal amalgamation application', () => { + let wrapper: Wrapper<Vue> + + beforeAll(() => { + // clear store + businessStore.setLegalName(null) + rootStore.setNameRequest(null) + rootStore.setTasks([]) + filingHistoryListStore.setFilings([]) + + sessionStorage.clear() + sessionStorage.setItem('KEYCLOAK_TOKEN', KEYCLOAK_TOKEN_USER) + sessionStorage.setItem('TEMP_REG_NUMBER', 'T123456789') + }) + + beforeEach(async () => { + // mock "fetchAuthorizations" auth service + vi.spyOn(AuthServices, 'fetchAuthorizations').mockImplementation((): any => { + return Promise.resolve({ + data: { roles: ['edit', 'view'] } + }) + }) + + // mock "fetchUserInfo" auth service + vi.spyOn(AuthServices, 'fetchUserInfo').mockImplementation((): any => { + return Promise.resolve(USER_INFO) + }) + + // mock "fetchDraftApp" legal service + vi.spyOn(LegalServices, 'fetchDraftApp').mockImplementation((): any => { + return Promise.resolve({ + filing: { + business: { + identifier: 'T123456789', + legalType: CorpTypeCd.BC_COMPANY + }, + header: { + date: '2020-05-21T00:11:55.887740+00:00', + filingId: 789, + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.DRAFT + }, + amalgamationApplication: { + nameRequest: { + legalType: CorpTypeCd.BC_COMPANY + }, + contactPoint: { + email: 'tester@test.com', + phone: '(123) 456-7890' + }, + type: AmalgamationTypes.HORIZONTAL + } + } + }) + }) + + // mock "UpdateLdUser" auth service + vi.spyOn(utils, 'UpdateLdUser').mockImplementation((): any => { + return Promise.resolve() + }) + + // create a Local Vue and install router (and store) on it + const localVue = createLocalVue() + localVue.use(VueRouter) + const router = mockRouter.mock() + router.push({ name: 'dashboard' }) + + wrapper = shallowMount(App, { localVue, router, vuetify }) + + // wait for everything to settle + await flushPromises() + }) + + afterEach(() => { + wrapper.destroy() + }) + + it('fetches horizontal amalgamation filing properly', () => { + expect(rootStore.getNameRequest).toBeNull() + expect(rootStore.getEntityStatus).toBe(EntityStatus.DRAFT_AMALGAMATION) + expect(businessStore.getIdentifier).toBe('T123456789') + expect(businessStore.isBcCompany).toBe(true) + expect(businessStore.isGoodStanding).toBe(true) + expect(businessStore.getLegalName).toBeNull() + expect(rootStore.isDraftAmalgamation).toBe(true) + expect(rootStore.isAppTask).toBe(true) + + // verify loaded task + expect(rootStore.tasks.length).toBe(1) + expect(rootStore.tasks[0].enabled).toBe(true) + expect(rootStore.tasks[0].order).toBe(1) + expect(rootStore.tasks[0].task.filing.business).not.toBeNull() + expect(rootStore.tasks[0].task.filing.header.name).toBe('amalgamationApplication') + expect(rootStore.tasks[0].task.filing.header.status).toBe('DRAFT') + expect(rootStore.tasks[0].task.filing.amalgamationApplication).not.toBeNull() + expect(rootStore.tasks[0].task.filing.displayName).toBe('Amalgamation Application Short-form (Horizontal)') + }) +}) + +describe('App as a completed horizontal amalgamation application', () => { + // Intermediate scenario - still using Temp Reg Number + let wrapper: Wrapper<Vue> + + beforeAll(() => { + // clear store + businessStore.setLegalName(null) + rootStore.setNameRequest(null) + rootStore.setTasks([]) + filingHistoryListStore.setFilings([]) + + sessionStorage.clear() + sessionStorage.setItem('KEYCLOAK_TOKEN', KEYCLOAK_TOKEN_USER) + sessionStorage.setItem('TEMP_REG_NUMBER', 'T123456789') + }) + + beforeEach(async () => { + // mock "fetchAuthorizations" auth service + vi.spyOn(AuthServices, 'fetchAuthorizations').mockImplementation((): any => { + return Promise.resolve({ + data: { roles: ['edit', 'view'] } + }) + }) + + // mock "fetchUserInfo" auth service + vi.spyOn(AuthServices, 'fetchUserInfo').mockImplementation((): any => { + return Promise.resolve(USER_INFO) + }) + + // mock "fetchDraftApp" legal service + vi.spyOn(LegalServices, 'fetchDraftApp').mockImplementation((): any => { + return Promise.resolve({ + filing: { + business: { + identifier: 'T123456789', + legalType: CorpTypeCd.BC_COMPANY + }, + header: { + date: '2020-05-21T00:11:55.887740+00:00', + effectiveDate: '2020-05-21T00:11:55.887740+00:00', + filingId: 789, + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.COMPLETED + }, + amalgamationApplication: { + nameRequest: { + nrNumber: 'NR 1234567', + legalType: CorpTypeCd.BC_COMPANY + }, + offices: BCOMP_ADDRESSES, + parties: BCOMP_PARTIES, + contactPoint: { + email: 'tester@test.com', + phone: '(123) 456-7890' + }, + type: AmalgamationTypes.HORIZONTAL + } + } + }) + }) + + // mock "UpdateLdUser" auth service + vi.spyOn(utils, 'UpdateLdUser').mockImplementation((): any => { + return Promise.resolve() + }) + + // create a Local Vue and install router on it + const localVue = createLocalVue() + localVue.use(VueRouter) + const router = mockRouter.mock() + router.push({ name: 'dashboard' }) + + wrapper = shallowMount(App, { localVue, router, vuetify }) + + // wait for everything to settle + await flushPromises() + }) + + afterEach(() => { + wrapper.destroy() + }) + + it('fetches regular amalgamation filing properly', () => { + expect(rootStore.getNameRequest).toBeNull() + expect(rootStore.getEntityStatus).toBe(EntityStatus.FILED_AMALGAMATION) + expect(businessStore.getIdentifier).toBe('T123456789') + expect(businessStore.isBcCompany).toBe(true) + expect(businessStore.isGoodStanding).toBe(true) + expect(businessStore.getLegalName).toBeNull() + expect(rootStore.isFiledAmalgamation).toBe(true) + expect(rootStore.isAppFiling).toBe(true) + + // verify loaded filing + expect(filingHistoryListStore.filings.length).toBe(1) + expect(filingHistoryListStore.filings[0].businessIdentifier).toBe('T123456789') + expect(filingHistoryListStore.filings[0].displayName).toBe('Amalgamation Application Short-form (Horizontal)') + expect(filingHistoryListStore.filings[0].filingSubType).toBe(FilingSubTypes.AMALGAMATION_HORIZONTAL) + expect(filingHistoryListStore.filings[0].name).toBe('amalgamationApplication') + expect(filingHistoryListStore.filings[0].status).toBe('COMPLETED') + expect(filingHistoryListStore.filings[0].data.applicationDate).toBe('2020-05-20') + expect(filingHistoryListStore.filings[0].data.legalFilings).toEqual(['amalgamationApplication']) + }) +}) + +describe('App as a draft vertical amalgamation application', () => { + let wrapper: Wrapper<Vue> + + beforeAll(() => { + // clear store + businessStore.setLegalName(null) + rootStore.setNameRequest(null) + rootStore.setTasks([]) + filingHistoryListStore.setFilings([]) + + sessionStorage.clear() + sessionStorage.setItem('KEYCLOAK_TOKEN', KEYCLOAK_TOKEN_USER) + sessionStorage.setItem('TEMP_REG_NUMBER', 'T123456789') + }) + + beforeEach(async () => { + // mock "fetchAuthorizations" auth service + vi.spyOn(AuthServices, 'fetchAuthorizations').mockImplementation((): any => { + return Promise.resolve({ + data: { roles: ['edit', 'view'] } + }) + }) + + // mock "fetchUserInfo" auth service + vi.spyOn(AuthServices, 'fetchUserInfo').mockImplementation((): any => { + return Promise.resolve(USER_INFO) + }) + + // mock "fetchDraftApp" legal service + vi.spyOn(LegalServices, 'fetchDraftApp').mockImplementation((): any => { + return Promise.resolve({ + filing: { + business: { + identifier: 'T123456789', + legalType: CorpTypeCd.BC_COMPANY + }, + header: { + date: '2020-05-21T00:11:55.887740+00:00', + filingId: 789, + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.DRAFT + }, + amalgamationApplication: { + nameRequest: { + legalType: CorpTypeCd.BC_COMPANY + }, + contactPoint: { + email: 'tester@test.com', + phone: '(123) 456-7890' + }, + type: AmalgamationTypes.VERTICAL + } + } + }) + }) + + // mock "UpdateLdUser" auth service + vi.spyOn(utils, 'UpdateLdUser').mockImplementation((): any => { + return Promise.resolve() + }) + + // create a Local Vue and install router (and store) on it + const localVue = createLocalVue() + localVue.use(VueRouter) + const router = mockRouter.mock() + router.push({ name: 'dashboard' }) + + wrapper = shallowMount(App, { localVue, router, vuetify }) + + // wait for everything to settle + await flushPromises() + }) + + afterEach(() => { + wrapper.destroy() + }) + + it('fetches vertical amalgamation filing properly', () => { + expect(rootStore.getNameRequest).toBeNull() + expect(rootStore.getEntityStatus).toBe(EntityStatus.DRAFT_AMALGAMATION) + expect(businessStore.getIdentifier).toBe('T123456789') + expect(businessStore.isBcCompany).toBe(true) + expect(businessStore.isGoodStanding).toBe(true) + expect(businessStore.getLegalName).toBeNull() + expect(rootStore.isDraftAmalgamation).toBe(true) + expect(rootStore.isAppTask).toBe(true) + + // verify loaded task + expect(rootStore.tasks.length).toBe(1) + expect(rootStore.tasks[0].enabled).toBe(true) + expect(rootStore.tasks[0].order).toBe(1) + expect(rootStore.tasks[0].task.filing.business).not.toBeNull() + expect(rootStore.tasks[0].task.filing.header.name).toBe('amalgamationApplication') + expect(rootStore.tasks[0].task.filing.header.status).toBe('DRAFT') + expect(rootStore.tasks[0].task.filing.amalgamationApplication).not.toBeNull() + expect(rootStore.tasks[0].task.filing.displayName).toBe('Amalgamation Application Short-form (Vertical)') + }) +}) + +describe('App as a completed vertical amalgamation application', () => { + // Intermediate scenario - still using Temp Reg Number + let wrapper: Wrapper<Vue> + + beforeAll(() => { + // clear store + businessStore.setLegalName(null) + rootStore.setNameRequest(null) + rootStore.setTasks([]) + filingHistoryListStore.setFilings([]) + + sessionStorage.clear() + sessionStorage.setItem('KEYCLOAK_TOKEN', KEYCLOAK_TOKEN_USER) + sessionStorage.setItem('TEMP_REG_NUMBER', 'T123456789') + }) + + beforeEach(async () => { + // mock "fetchAuthorizations" auth service + vi.spyOn(AuthServices, 'fetchAuthorizations').mockImplementation((): any => { + return Promise.resolve({ + data: { roles: ['edit', 'view'] } + }) + }) + + // mock "fetchUserInfo" auth service + vi.spyOn(AuthServices, 'fetchUserInfo').mockImplementation((): any => { + return Promise.resolve(USER_INFO) + }) + + // mock "fetchDraftApp" legal service + vi.spyOn(LegalServices, 'fetchDraftApp').mockImplementation((): any => { + return Promise.resolve({ + filing: { + business: { + identifier: 'T123456789', + legalType: CorpTypeCd.BC_COMPANY + }, + header: { + date: '2020-05-21T00:11:55.887740+00:00', + effectiveDate: '2020-05-21T00:11:55.887740+00:00', + filingId: 789, + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.COMPLETED + }, + amalgamationApplication: { + nameRequest: { + nrNumber: 'NR 1234567', + legalType: CorpTypeCd.BC_COMPANY + }, + offices: BCOMP_ADDRESSES, + parties: BCOMP_PARTIES, + contactPoint: { + email: 'tester@test.com', + phone: '(123) 456-7890' + }, + type: AmalgamationTypes.VERTICAL + } + } + }) + }) + + // mock "UpdateLdUser" auth service + vi.spyOn(utils, 'UpdateLdUser').mockImplementation((): any => { + return Promise.resolve() + }) + + // create a Local Vue and install router on it + const localVue = createLocalVue() + localVue.use(VueRouter) + const router = mockRouter.mock() + router.push({ name: 'dashboard' }) + + wrapper = shallowMount(App, { localVue, router, vuetify }) + + // wait for everything to settle + await flushPromises() + }) + + afterEach(() => { + wrapper.destroy() + }) + + it('fetches regular amalgamation filing properly', () => { + expect(rootStore.getNameRequest).toBeNull() + expect(rootStore.getEntityStatus).toBe(EntityStatus.FILED_AMALGAMATION) + expect(businessStore.getIdentifier).toBe('T123456789') + expect(businessStore.isBcCompany).toBe(true) + expect(businessStore.isGoodStanding).toBe(true) + expect(businessStore.getLegalName).toBeNull() + expect(rootStore.isFiledAmalgamation).toBe(true) + expect(rootStore.isAppFiling).toBe(true) + + // verify loaded filing + expect(filingHistoryListStore.filings.length).toBe(1) + expect(filingHistoryListStore.filings[0].businessIdentifier).toBe('T123456789') + expect(filingHistoryListStore.filings[0].displayName).toBe('Amalgamation Application Short-form (Vertical)') + expect(filingHistoryListStore.filings[0].filingSubType).toBe(FilingSubTypes.AMALGAMATION_VERTICAL) + expect(filingHistoryListStore.filings[0].name).toBe('amalgamationApplication') + expect(filingHistoryListStore.filings[0].status).toBe('COMPLETED') + expect(filingHistoryListStore.filings[0].data.applicationDate).toBe('2020-05-20') + expect(filingHistoryListStore.filings[0].data.legalFilings).toEqual(['amalgamationApplication']) + }) +}) diff --git a/tests/unit/Dashboard.spec.ts b/tests/unit/Dashboard.spec.ts index 59284147f..fba350b63 100644 --- a/tests/unit/Dashboard.spec.ts +++ b/tests/unit/Dashboard.spec.ts @@ -17,6 +17,13 @@ import FilingHistoryList from '@/components/Dashboard/FilingHistoryList.vue' import AddressListSm from '@/components/Dashboard/AddressListSm.vue' import DirectorListSm from '@/components/Dashboard/DirectorListSm.vue' +// Alerts +import Amalgamation from '@/components/Dashboard/Alerts/Amalgamation.vue' +import FrozenInformation from '@/components/Dashboard/Alerts/FrozenInformation.vue' +import MissingInformation from '@/components/Dashboard/Alerts/MissingInformation.vue' +import NotInCompliance from '@/components/Dashboard/Alerts/NotInCompliance.vue' +import NotInGoodStanding from '@/components/Dashboard/Alerts/NotInGoodStanding.vue' + Vue.use(Vuetify) Vue.use(Vuelidate) @@ -36,17 +43,35 @@ describe('Dashboard - UI', () => { wrapper = shallowMount(Dashboard, { vuetify, mocks: { $route }, + // create local properties for use in computed object below data: () => ({ - isInGoodStanding: true + _isFutureEffectiveAmalgamation: false, + _isAdminFrozen: false, + _hasMissingInfoWarning: false, + _hasComplianceWarning: false, + _isGoodStanding: true }), + // declare computed properties to override store getters/actions computed: { + isFutureEffectiveAmalgamation: { + get (): boolean { return this.$data._isFutureEffectiveAmalgamation }, + set (val: boolean) { this.$data._isFutureEffectiveAmalgamation = val } + }, + isAdminFrozen: { + get (): boolean { return this.$data._isAdminFrozen }, + set (val: boolean) { this.$data._isAdminFrozen = val } + }, + hasMissingInfoWarning: { + get (): boolean { return this.$data._hasMissingInfoWarning }, + set (val: boolean) { this.$data._hasMissingInfoWarning = val } + }, + hasComplianceWarning: { + get (): boolean { return this.$data._hasComplianceWarning }, + set (val: boolean) { this.$data._hasComplianceWarning = val } + }, isGoodStanding: { - get (): boolean { - return this.$data.isInGoodStanding - }, - set (val: boolean) { - this.$data.isInGoodStanding = val - } + get (): boolean { return this.$data._isGoodStanding }, + set (val: boolean) { this.$data._isGoodStanding = val } } } }) @@ -63,6 +88,26 @@ describe('Dashboard - UI', () => { expect(wrapper.findComponent(FilingHistoryList).exists()).toBe(true) expect(wrapper.findComponent(AddressListSm).exists()).toBe(true) expect(wrapper.findComponent(DirectorListSm).exists()).toBe(true) + + // verify no alerts are displayed + expect(wrapper.find('#dashboard-alerts-section').exists()).toBe(false) + }) + + it('identifies app tasks vs app filings', () => { + const tests = [ + { entityStatus: EntityStatus.DRAFT_AMALGAMATION, isAppTask: true }, + { entityStatus: EntityStatus.DRAFT_INCORP_APP, isAppTask: true }, + { entityStatus: EntityStatus.DRAFT_REGISTRATION, isAppTask: true }, + { entityStatus: EntityStatus.FILED_AMALGAMATION, isAppFiling: true }, + { entityStatus: EntityStatus.FILED_INCORP_APP, isAppFiling: true }, + { entityStatus: EntityStatus.FILED_REGISTRATION, isAppFiling: true } + ] + + tests.forEach((test) => { + rootStore.entityStatus = test.entityStatus + expect(vm.isAppTask).toBe(!!test.isAppTask) + expect(vm.isAppFiling).toBe(!!test.isAppFiling) + }) }) it('identifies app tasks vs app filings', () => { @@ -165,12 +210,64 @@ describe('Dashboard - UI', () => { expect(localWrapper.find('#standalone-directors-button').attributes('disabled')).toBe('true') }) - it('Alert does not display by default, and does display for business not in good standing', async () => { - expect(wrapper.find('#dashboard-alerts-section').exists()).toBe(false) - wrapper.setData({ isInGoodStanding: false }) - await Vue.nextTick() + it('displays the Amalgamation alert', async () => { + // verify initially hidden + expect(wrapper.findComponent(Amalgamation).exists()).toBe(false) + + // enable and verify displayed + await wrapper.setData({ isFutureEffectiveAmalgamation: true }) + expect(wrapper.findComponent(Amalgamation).exists()).toBe(true) + + // cleanup + await wrapper.setData({ isFutureEffectiveAmalgamation: false }) + }) + + it('displays the Frozen Information alert', async () => { + // verify initially hidden + expect(wrapper.findComponent(FrozenInformation).exists()).toBe(false) + + // enable and verify displayed + await wrapper.setData({ isAdminFrozen: true }) + expect(wrapper.findComponent(FrozenInformation).exists()).toBe(true) + + // cleanup + await wrapper.setData({ isAdminFrozen: false }) + }) + + it('displays the Missing Information alert', async () => { + // verify initially hidden + expect(wrapper.findComponent(MissingInformation).exists()).toBe(false) + + // enable and verify displayed + await wrapper.setData({ hasMissingInfoWarning: true }) + expect(wrapper.findComponent(MissingInformation).exists()).toBe(true) + + // cleanup + await wrapper.setData({ hasMissingInfoWarning: false }) + }) + + it('displays the Not In Compliance alert', async () => { + // verify initially hidden + expect(wrapper.findComponent(NotInCompliance).exists()).toBe(false) + + // enable and verify displayed + await wrapper.setData({ hasComplianceWarning: true }) + expect(wrapper.findComponent(NotInCompliance).exists()).toBe(true) + + // cleanup + await wrapper.setData({ hasComplianceWarning: false }) + }) + + it('displays the Not In Good Standing alert', async () => { + // verify initially hidden + expect(wrapper.findComponent(NotInGoodStanding).exists()).toBe(false) + + // enable and verify displayed + await wrapper.setData({ isGoodStanding: false }) + expect(wrapper.findComponent(NotInGoodStanding).exists()).toBe(true) - expect(wrapper.find('#dashboard-alerts-section').exists()).toBe(true) + // cleanup + await wrapper.setData({ isGoodStanding: true }) }) }) diff --git a/tests/unit/EntityHeader.spec.ts b/tests/unit/EntityHeader.spec.ts index 9d54c9b32..12caacbb1 100644 --- a/tests/unit/EntityHeader.spec.ts +++ b/tests/unit/EntityHeader.spec.ts @@ -7,7 +7,7 @@ import { useBusinessStore, useFilingHistoryListStore, useRootStore } from '@/sto import EntityHeader from '@/components/EntityInfo/EntityHeader.vue' import mockRouter from './mockRouter' import { CorpTypeCd } from '@bcrs-shared-components/corp-type-module' -import { EntityStatus, FilingStatus, FilingTypes } from '@/enums' +import { EntityState, EntityStatus, FilingStatus, FilingSubTypes, FilingTypes } from '@/enums' Vue.use(Vuetify) Vue.use(VueRouter) @@ -108,7 +108,7 @@ describe('Entity Header - data', () => { expect(wrapper.find('#app-description').text()).toBe('BC Benefit Company Incorporation Application') }) - it('displays draft numbered amalgamation application', async () => { + it('displays draft numbered amalgamation application - Regular', async () => { // set store properties businessStore.setLegalName(null) rootStore.entityStatus = EntityStatus.DRAFT_AMALGAMATION @@ -135,7 +135,7 @@ describe('Entity Header - data', () => { expect(wrapper.find('#app-description').text()).toBe('BC Limited Company Amalgamation Application - Regular') }) - it('displays draft named amalgamation application', async () => { + it('displays draft named amalgamation application - Regular', async () => { // set store properties businessStore.setLegalName('My Amalgamated Company') rootStore.entityStatus = EntityStatus.DRAFT_AMALGAMATION @@ -162,7 +162,7 @@ describe('Entity Header - data', () => { expect(wrapper.find('#app-description').text()).toBe('BC Limited Company Amalgamation Application - Regular') }) - it('displays filed numbered amalgamated company', async () => { + it('displays filed numbered amalgamated company - Regular', async () => { // set store properties businessStore.setLegalName(null) rootStore.entityStatus = EntityStatus.FILED_AMALGAMATION @@ -190,7 +190,7 @@ describe('Entity Header - data', () => { expect(wrapper.find('#app-description').text()).toBe('BC Limited Company Amalgamation Application - Regular') }) - it('displays filed named amalgamated company', async () => { + it('displays filed named amalgamated company - Regular', async () => { // set store properties businessStore.setLegalName('My Amalgamated Company') rootStore.entityStatus = EntityStatus.FILED_AMALGAMATION @@ -218,7 +218,7 @@ describe('Entity Header - data', () => { expect(wrapper.find('#app-description').text()).toBe('BC Limited Company Amalgamation Application - Regular') }) - it('displays numbered amalgamated company', async () => { + it('displays numbered amalgamated company - Regular amalgamation', async () => { // set store properties businessStore.setLegalName(null) rootStore.entityStatus = null @@ -246,7 +246,7 @@ describe('Entity Header - data', () => { expect(wrapper.find('#business-description').text()).toBe('BC Limited Company') }) - it('displays named amalgamated company', async () => { + it('displays named amalgamated company - Regular amalgamation', async () => { // set store properties businessStore.setLegalName('My Amalgamated Company') rootStore.entityStatus = null @@ -273,56 +273,158 @@ describe('Entity Header - data', () => { expect(wrapper.find('#entity-legal-name').text()).toBe('My Amalgamated Company') expect(wrapper.find('#business-description').text()).toBe('BC Limited Company') }) + + // Unit test assertions for Vertical amalgamation are pretty much the same except 'displayName' + // Reducing it to one as both tests are quite similar + it('displays draft numbered amalgamation application - Horizontal', async () => { + // set store properties + businessStore.setLegalName(null) + rootStore.entityStatus = EntityStatus.DRAFT_AMALGAMATION + businessStore.setLegalType(CorpTypeCd.BC_COMPANY) + filingHistoryListStore.setFilings([]) + rootStore.setTasks([ + { + task: { + filing: { + displayName: 'BC Limited Company Amalgamation Application - Horizontal' + } + } + } as any + ]) + + const wrapper = shallowMount(EntityHeader, { + vuetify, + router, + propsData: { businessId: null, tempRegNumber: 'T1234567' } + }) + await Vue.nextTick() + + expect(wrapper.find('#app-name').text()).toBe('Numbered Amalgamated Company') + expect(wrapper.find('#app-description').text()).toBe('BC Limited Company Amalgamation Application - Horizontal') + }) + + // Unit test assertions for Vertical amalgamation are pretty much the same except 'displayName' + // Reducing it to one as both tests are quite similar + it('displays filed numbered amalgamated company - Horizontal', async () => { + // set store properties + businessStore.setLegalName(null) + rootStore.entityStatus = EntityStatus.FILED_AMALGAMATION + businessStore.setLegalType(CorpTypeCd.BC_COMPANY) + rootStore.setTasks([]) + filingHistoryListStore.setFilings([ + { + displayLedger: true, + displayName: 'BC Limited Company Amalgamation Application - Horizontal', + effectiveDate: '2019-06-02 19:22:59 GMT', + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.COMPLETED, + submittedDate: 'Sun, 02 Jun 2019 19:22:59 GMT' + } as any + ]) + + const wrapper = shallowMount(EntityHeader, { + vuetify, + router, + propsData: { businessId: null, tempRegNumber: 'T1234567' } + }) + await Vue.nextTick() + + expect(wrapper.find('#app-name').text()).toBe('Numbered Amalgamated Company') + expect(wrapper.find('#app-description').text()).toBe('BC Limited Company Amalgamation Application - Horizontal') + }) + + // Unit test assertions for Vertical amalgamation are pretty much the same except 'displayName' + // Reducing it to one as both tests are quite similar + it('displays numbered amalgamated company - Horizontal amalgamation', async () => { + // set store properties + businessStore.setLegalName(null) + rootStore.entityStatus = null + businessStore.setLegalType(CorpTypeCd.BC_COMPANY) + rootStore.setTasks([]) + filingHistoryListStore.setFilings([ + { + displayLedger: true, + displayName: 'BC Limited Company Amalgamation Application - Horizontal', + effectiveDate: '2019-06-02 19:22:59 GMT', + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.COMPLETED, + submittedDate: 'Sun, 02 Jun 2019 19:22:59 GMT' + } as any + ]) + + const wrapper = shallowMount(EntityHeader, { + vuetify, + router, + propsData: { businessId: 'BC1234567', tempRegNumber: null } + }) + await Vue.nextTick() + + expect(wrapper.find('#entity-legal-name').text()).toBe('Numbered Limited Company') + expect(wrapper.find('#business-description').text()).toBe('BC Limited Company') + }) }) describe('Entity Header - HISTORICAL badge', () => { const router = mockRouter.mock() const variations = [ - { // 0 - entityState: 'ACTIVE', + { // variation 0 - active business + businessState: EntityState.ACTIVE, exists: false }, - { // 1 - entityState: 'LIQUIDATION', + { // variation 1 - business in liquidation + businessState: EntityState.LIQUIDATION, exists: false }, - { // 2 - entityState: 'HISTORICAL', + { // variation 2 - historical busines due to unknown reason + businessState: EntityState.HISTORICAL, stateFiling: null, exists: true, text: 'Unknown Reason' }, - { // 3 - entityState: 'HISTORICAL', + { // variation 3 - historical business due to voluntary dissolution + businessState: EntityState.HISTORICAL, stateFiling: { - header: { name: 'dissolution' }, + header: { name: FilingTypes.DISSOLUTION }, dissolution: { dissolutionDate: '2020-01-01', - dissolutionType: 'voluntary' + dissolutionType: FilingSubTypes.DISSOLUTION_VOLUNTARY } }, exists: true, text: 'Voluntary Dissolution – January 1, 2020' }, - { // 4 - entityState: 'HISTORICAL', + { // variation 4 - historical company due to involuntary dissolution + businessState: EntityState.HISTORICAL, stateFiling: { - header: { - name: 'involuntaryDissolution', - effectiveDate: '2020-01-01T08:01:00+00:00' + header: { name: FilingTypes.DISSOLUTION }, + dissolution: { + dissolutionDate: '2020-01-01', + dissolutionType: FilingSubTypes.DISSOLUTION_INVOLUNTARY + } + }, + exists: true, + text: 'Involuntary Dissolution – January 1, 2020' + }, + { // variation 5 - historical company due to amalgamation + businessState: EntityState.HISTORICAL, + businessInfo: { + amalgamatedInto: { + amalgamationDate: '2024-02-08T00:08:04.188642+00:00', + identifier: 'BC0871584' } }, exists: true, - text: 'Involuntary Dissolution – January 1, 2020 at 12:01 am Pacific time' + text: 'Amalgamation – February 7, 2024 – BC0871584' } ] variations.forEach((_, index) => { it(`conditionally displays historical badge - variation #${index}`, async () => { // init store - businessStore.setState(_.entityState as any) - rootStore.setStateFiling(_.stateFiling as any || null) + businessStore.setState(_.businessState as any) + _.stateFiling && rootStore.setStateFiling(_.stateFiling as any) + _.businessInfo && businessStore.setBusinessInfo({ ...businessStore.businessInfo, ..._.businessInfo } as any) const wrapper = shallowMount(EntityHeader, { vuetify, @@ -340,6 +442,7 @@ describe('Entity Header - HISTORICAL badge', () => { // cleanup businessStore.setState(null) rootStore.setStateFiling(null) + _.businessInfo && businessStore.setBusinessInfo({ ...businessStore.businessInfo, amalgamatedInto: null }) wrapper.destroy() }) }) diff --git a/tests/unit/FilingHistoryList1.spec.ts b/tests/unit/FilingHistoryList1.spec.ts index bc251f9c0..5ff4674d5 100644 --- a/tests/unit/FilingHistoryList1.spec.ts +++ b/tests/unit/FilingHistoryList1.spec.ts @@ -525,6 +525,7 @@ describe('Filing History List - misc functionality', () => { expect(vm.disableCorrection({})).toBe(true) }) + // *** FUTURE: this needs to be refactored to work for HeaderActions.vue it.skip('returns correct values for disableCorrection()', async () => { filingHistoryListStore.setFilings([]) @@ -559,25 +560,31 @@ describe('Filing History List - misc functionality', () => { // conditions[3]: IA as a BEN/BC/CC/ULC for (const entityType of ['BEN', 'BC', 'CC', 'ULC']) { businessStore.setLegalType(entityType as any) - expect(vm.disableCorrection({ ...item, name: 'incorporationApplication' })).toBe(false) + expect(vm.disableCorrection({ ...item, name: FilingTypes.INCORPORATION_APPLICATION })).toBe(false) } // conditions[4]: Change of Registration as a firm for (const entityType of ['SP', 'GP']) { businessStore.setLegalType(entityType as any) - expect(vm.disableCorrection({ ...item, name: 'changeOfRegistration' })).toBe(false) + expect(vm.disableCorrection({ ...item, name: FilingTypes.CHANGE_OF_REGISTRATION })).toBe(false) } // conditions[5]: Correction as a firm or BEN/BC/CC/ULC for (const entityType of ['SP', 'GP', 'BEN', 'BC', 'CC', 'ULC']) { businessStore.setLegalType(entityType as any) - expect(vm.disableCorrection({ ...item, name: 'correction' })).toBe(false) + expect(vm.disableCorrection({ ...item, name: FilingTypes.CORRECTION })).toBe(false) } // conditions[6]: Registration as a firm for (const entityType of ['SP', 'GP']) { businessStore.setLegalType(entityType as any) - expect(vm.disableCorrection({ ...item, name: 'registration' })).toBe(false) + expect(vm.disableCorrection({ ...item, name: FilingTypes.REGISTRATION })).toBe(false) + } + + // conditions[7]: Amalgamation as a BEN/BC/CC/ULC + for (const entityType of ['BEN', 'BC', 'CC', 'ULC']) { + businessStore.setLegalType(entityType as any) + expect(vm.disableCorrection({ ...item, name: FilingTypes.AMALGAMATION_APPLICATION })).toBe(false) } // Annual Report, Alteration, Change of Address, Change of Directors, Conversion @@ -603,19 +610,83 @@ describe('Filing History List - misc functionality', () => { // only conditions[3]: IA as not a BEN/BC/CC/ULC businessStore.setLegalType(CorpTypeCd.COOP) - expect(vm.disableCorrection({ ...item, name: 'incorporationApplication' })).toBe(true) + expect(vm.disableCorrection({ ...item, name: FilingTypes.INCORPORATION_APPLICATION })).toBe(true) // only conditions[4]: Change of Registration as not a firm businessStore.setLegalType(CorpTypeCd.COOP) - expect(vm.disableCorrection({ ...item, name: 'changeOfRegistration' })).toBe(true) + expect(vm.disableCorrection({ ...item, name: FilingTypes.CHANGE_OF_REGISTRATION })).toBe(true) // only conditions[5]: Correction as not a firm nor BEN/BC/CC/ULC businessStore.setLegalType(CorpTypeCd.COOP) - expect(vm.disableCorrection({ ...item, name: 'correction' })).toBe(true) + expect(vm.disableCorrection({ ...item, name: FilingTypes.CORRECTION })).toBe(true) // only conditions[6]: Registration as not a firm businessStore.setLegalType(CorpTypeCd.COOP) - expect(vm.disableCorrection({ ...item, name: 'registration' })).toBe(true) + expect(vm.disableCorrection({ ...item, name: FilingTypes.REGISTRATION })).toBe(true) + + // only conditions[7]: Amalgamation as not a BEN/BC/CC/ULC + businessStore.setLegalType(CorpTypeCd.COOP) + expect(vm.disableCorrection({ ...item, name: FilingTypes.AMALGAMATION_APPLICATION })).toBe(true) + }) + + it('displays multiple filing items, and remove the filing that displayLedger is false', async () => { + // init store + businessStore.setIdentifier('CP0001191') + filingHistoryListStore.setFilings([ + { + availableOnPaperOnly: false, + businessIdentifier: 'CP0001191', + commentsCount: 0, + displayLedger: true, + displayName: 'Annual Report', + effectiveDate: '2019-11-20 22:17:54 GMT', + filingId: 111, + isFutureEffective: false, + name: FilingTypes.ANNUAL_REPORT, + status: FilingStatus.COMPLETED, + submittedDate: 'Tue, 02 July 2019 12:00:00 GMT', + submitter: 'Submitter 1' + } as any, + { + availableOnPaperOnly: false, + businessIdentifier: 'BC0001191', + commentsCount: 0, + displayLedger: true, + displayName: 'Benefit Company Incorporation Application - ACME Benefit Inc', + effectiveDate: '2019-11-20 22:17:54 GMT', + filingId: 222, + isFutureEffective: false, + name: FilingTypes.INCORPORATION_APPLICATION, + status: FilingStatus.COMPLETED, + submittedDate: 'Thu, 04 Apr 2019 12:00:00 GMT', + submitter: 'Submitter 2' + }, + { + availableOnPaperOnly: false, + businessIdentifier: 'CP0001191', + commentsCount: 0, + displayLedger: false, + displayName: 'Admin Freeze', + effectiveDate: '2019-11-20 22:17:54 GMT', + filingId: 333, + isFutureEffective: false, + name: FilingTypes.ADMIN_FREEZE, + status: FilingStatus.COMPLETED, + submittedDate: 'Mon, 06 May 2019 12:00:00 GMT', + submitter: 'Submitter 3' + } + ]) + + const wrapper = mount(FilingHistoryList, { vuetify }) + const vm = wrapper.vm as any + await Vue.nextTick() + + expect(vm.getFilings.length).toEqual(2) + expect(wrapper.findAll('.default-filing').length).toEqual(1) + expect(wrapper.findAll('.incorporation-application').length).toEqual(1) + expect(wrapper.find('.no-results').exists()).toBe(false) + + wrapper.destroy() }) it('displays multiple filing items, and remove the filing that displayLedger is false', async () => { diff --git a/tests/unit/FilingHistoryList2.spec.ts b/tests/unit/FilingHistoryList2.spec.ts index db20ba7f2..932004ee6 100644 --- a/tests/unit/FilingHistoryList2.spec.ts +++ b/tests/unit/FilingHistoryList2.spec.ts @@ -37,7 +37,12 @@ const isCorrected = (filing) => !!filing.correctionFilingId const isIncorporationApplication = (filing) => (filing.name === FilingTypes.INCORPORATION_APPLICATION) // const isBcompCoa = (filing) => false FUTURE: implement BComp tests const isAlteration = (filing) => (filing.name === FilingTypes.ALTERATION) -const isAmalgamation = (filing) => (filing.name === FilingTypes.AMALGAMATION_APPLICATION) +const isRegularAmalgamation = (filing) => (filing.name === FilingTypes.AMALGAMATION_APPLICATION && + filing.filingSubType === FilingSubTypes.AMALGAMATION_REGULAR) +const isHorizontalAmalgamation = (filing) => (filing.name === FilingTypes.AMALGAMATION_APPLICATION && + filing.filingSubType === FilingSubTypes.AMALGAMATION_HORIZONTAL) +const isVerticalAmalgamation = (filing) => (filing.name === FilingTypes.AMALGAMATION_APPLICATION && + filing.filingSubType === FilingSubTypes.AMALGAMATION_VERTICAL) const isConsentContinuationOut = (filing) => (filing.name === FilingTypes.CONSENT_CONTINUATION_OUT) const isStaff = (filing) => ( filing.name === FilingTypes.REGISTRARS_NOTATION || @@ -126,18 +131,56 @@ filings.forEach((filing: any, index: number) => { // expect(item.fromLegalType).toBeDefined() // FUTURE: test this more specifically }) - itIf(isAmalgamation(filing))('amalgamation filing', () => { + itIf(isRegularAmalgamation(filing))('regular amalgamation filing', () => { // verify data expect(vm.getFilings.length).toBe(1) // sanity check const item = vm.getFilings[0] expect(item.businessIdentifier).toBe('BC1234567') expect(item.data.amalgamationApplication.type).toBe(FilingSubTypes.AMALGAMATION_REGULAR) - expect(item.displayName).toBe('Amalgamation Application - Regular') + expect(item.displayName).toBe('Amalgamation Application (Regular)') expect(item.name).toBe(FilingTypes.AMALGAMATION_APPLICATION) expect(item.status).toBe(FilingStatus.COMPLETED) // verify display - expect(wrapper.find('.item-header-title').text()).toBe('Amalgamation Application - Regular') + expect(wrapper.find('.item-header-title').text()).toBe('Amalgamation Application (Regular)') + expect(wrapper.find('.item-header-subtitle').text()).toContain('FILED AND PAID') + expect(wrapper.find('.item-header-subtitle').text()).toContain('(filed by Registry Staff on Feb 3, 2023)') + expect(wrapper.find('.item-header-subtitle').text()).toContain('EFFECTIVE as of Feb 3, 2023') + expect(wrapper.find('.view-details').text()).toBe('View Documents') + expect(wrapper.find('.hide-details').text()).toBe('Hide Documents') + }) + + itIf(isHorizontalAmalgamation(filing))('horizontal amalgamation filing', async () => { + // verify data + expect(vm.getFilings.length).toBe(1) // sanity check + const item = vm.getFilings[0] + expect(item.businessIdentifier).toBe('BC1234567') + expect(item.data.amalgamationApplication.type).toBe(FilingSubTypes.AMALGAMATION_HORIZONTAL) + expect(item.displayName).toBe('Amalgamation Application Short-form (Horizontal)') + expect(item.name).toBe(FilingTypes.AMALGAMATION_APPLICATION) + expect(item.status).toBe(FilingStatus.COMPLETED) + + // verify display + expect(wrapper.find('.item-header-title').text()).toBe('Amalgamation Application Short-form (Horizontal)') + expect(wrapper.find('.item-header-subtitle').text()).toContain('FILED AND PAID') + expect(wrapper.find('.item-header-subtitle').text()).toContain('(filed by Registry Staff on Feb 3, 2023)') + expect(wrapper.find('.item-header-subtitle').text()).toContain('EFFECTIVE as of Feb 3, 2023') + expect(wrapper.find('.view-details').text()).toBe('View Documents') + expect(wrapper.find('.hide-details').text()).toBe('Hide Documents') + }) + + itIf(isVerticalAmalgamation(filing))('vertical amalgamation filing', () => { + // verify data + expect(vm.getFilings.length).toBe(1) // sanity check + const item = vm.getFilings[0] + expect(item.businessIdentifier).toBe('BC1234567') + expect(item.data.amalgamationApplication.type).toBe(FilingSubTypes.AMALGAMATION_VERTICAL) + expect(item.displayName).toBe('Amalgamation Application Short-form (Vertical)') + expect(item.name).toBe(FilingTypes.AMALGAMATION_APPLICATION) + expect(item.status).toBe(FilingStatus.COMPLETED) + + // verify display + expect(wrapper.find('.item-header-title').text()).toBe('Amalgamation Application Short-form (Vertical)') expect(wrapper.find('.item-header-subtitle').text()).toContain('FILED AND PAID') expect(wrapper.find('.item-header-subtitle').text()).toContain('(filed by Registry Staff on Feb 3, 2023)') expect(wrapper.find('.item-header-subtitle').text()).toContain('EFFECTIVE as of Feb 3, 2023') diff --git a/tests/unit/LedgerConsentContinuationOut.spec.ts b/tests/unit/LedgerConsentContinuationOut.spec.ts index 00068d799..4dcccc2b7 100644 --- a/tests/unit/LedgerConsentContinuationOut.spec.ts +++ b/tests/unit/LedgerConsentContinuationOut.spec.ts @@ -36,7 +36,7 @@ describe('Display ConsentContinuationOut component', () => { expect(wrapper.find('.consent-continuation-out').text()).toContain('FILED AND PAID (filed by on [unknown])') expect(wrapper.find('.consent-continuation-out').text()).toContain('EFFECTIVE as of [unknown]') expect(wrapper.find('.expand-btn').text()).toContain('View Documents') - expect(wrapper.find('.v-expansion-panel-content').exists()).toBe(false) + expect(wrapper.find('.v-expansion-panel-content').exists()).toBe(true) expect(vm.expiry).toEqual('August 17, 2023 at 11:59 pm Pacific time') wrapper.destroy() }) diff --git a/tests/unit/LedgerContinuationOut.spec.ts b/tests/unit/LedgerContinuationOut.spec.ts index 553d7c33f..7dc55da6a 100644 --- a/tests/unit/LedgerContinuationOut.spec.ts +++ b/tests/unit/LedgerContinuationOut.spec.ts @@ -42,7 +42,7 @@ describe('Display ContinuationOut component', () => { expect(wrapper.find('.continuation-out').text()).toContain('FILED AND PAID (filed by on [unknown])') expect(wrapper.find('.continuation-out').text()).toContain('EFFECTIVE as of [unknown]') expect(wrapper.find('.expand-btn').text()).toContain('View Documents') - expect(wrapper.find('.v-expansion-panel-content').exists()).toBe(false) + expect(wrapper.find('.v-expansion-panel-content').exists()).toBe(true) expect(vm.continuationOutDate).toEqual('Jun 10, 2023') expect(vm.legalName).toBe('North Shore Toys LTD.') wrapper.destroy() diff --git a/tests/unit/LegalObligation.spec.ts b/tests/unit/LegalObligation.spec.ts index 132088057..00ef62ef7 100644 --- a/tests/unit/LegalObligation.spec.ts +++ b/tests/unit/LegalObligation.spec.ts @@ -5,7 +5,7 @@ import { mount } from '@vue/test-utils' import { createPinia, setActivePinia } from 'pinia' import { useBusinessStore, useFilingHistoryListStore, useRootStore } from '@/stores' import { ConfigJson } from '@/resources' -import { CorpTypeCd } from '@/enums' +import { CorpTypeCd, EntityState, FilingTypes } from '@/enums' // Components import LegalObligation from '@/components/Dashboard/LegalObligation.vue' @@ -24,10 +24,25 @@ const newIncorporationFiling = [ availableOnPaperOnly: false, displayLedger: true, displayName: 'Incorporation Application', + effectiveDate: '2024-02-21 12:00:00 GMT', + filingId: 123, + isFutureEffective: false, + name: FilingTypes.AMALGAMATION_APPLICATION, + status: 'PAID', + submittedDate: '2024-02-21 12:00:00 GMT', + submitter: 'Full Name 1' + } +] + +const newAmalgamationFiling = [ + { + availableOnPaperOnly: false, + displayLedger: true, + displayName: 'Amalgamation Application (Regular)', effectiveDate: '2019-06-02 19:22:59 GMT', filingId: 123, isFutureEffective: false, - name: 'incorporationApplication', + name: FilingTypes.INCORPORATION_APPLICATION, status: 'PAID', submittedDate: 'Sun, 02 Jun 2019 19:22:59 GMT', submitter: 'Full Name 1' @@ -42,7 +57,7 @@ const newRegistrationFiling = [ effectiveDate: '2019-06-02 19:22:59 GMT', filingId: 123, isFutureEffective: false, - name: 'registration', + name: FilingTypes.REGISTRATION, status: 'PAID', submittedDate: 'Sun, 02 Jun 2019 19:22:59 GMT', submitter: 'Full Name 1' @@ -57,7 +72,7 @@ const businessWithMaintenanceFiling = [ effectiveDate: '2019-06-02 19:22:59 GMT', filingId: 123, isFutureEffective: false, - name: 'incorporationApplication', + name: FilingTypes.INCORPORATION_APPLICATION, status: 'PAID', submittedDate: 'Sun, 02 Jun 2019 19:22:59 GMT', submitter: 'Full Name 1' @@ -69,7 +84,7 @@ const businessWithMaintenanceFiling = [ effectiveDate: '2019-06-02 19:22:59 GMT', filingId: 456, isFutureEffective: false, - name: 'annualReport', + name: FilingTypes.ANNUAL_REPORT, status: 'PAID', submittedDate: 'Sun, 02 Jun 2019 19:22:59 GMT', submitter: 'Full Name 1' @@ -81,7 +96,7 @@ const taskList = [ task: { filing: { header: { - name: 'annualReport', + name: FilingTypes.ANNUAL_REPORT, ARFilingYear: 2019, status: 'ERROR', filingId: 789 @@ -107,6 +122,13 @@ const obligationTestCases = [ configKey: 0, filingBody: newIncorporationFiling }, + { + entityType: CorpTypeCd.BENEFIT_COMPANY, + identifier: 'BC1232134', + displaysObligations: true, + configKey: 0, + filingBody: newAmalgamationFiling + }, { entityType: CorpTypeCd.COOP, identifier: 'CP1232134', @@ -136,6 +158,7 @@ for (const test of obligationTestCases) { sessionStorage.setItem('BUSINESS_ID', test.identifier) businessStore.setLegalType(test.entityType) businessStore.setIdentifier(test.identifier) + businessStore.setState(EntityState.ACTIVE) rootStore.configObject = ConfigJson[test.configKey] }) diff --git a/tests/unit/StaffNotation.spec.ts b/tests/unit/StaffNotation.spec.ts index 76406bb9a..529344a3f 100644 --- a/tests/unit/StaffNotation.spec.ts +++ b/tests/unit/StaffNotation.spec.ts @@ -27,6 +27,83 @@ document.body.setAttribute('data-app', 'true') // Prevent the warning "[Vuetify] Unable to locate target #staff-notation" document.body.setAttribute('id', 'staff-notation') +describe('StaffNotation - Put Back On', () => { + const { assign } = window.location + + beforeAll(() => { + // mock the window.location.assign function + delete window.location + window.location = { assign: vi.fn() } as any + + const configuration = { + VUE_APP_BUSINESS_CREATE_URL: 'https://create.url/', + VUE_APP_BUSINESS_EDIT_URL: 'https://edit.url/' + } + + // set configurations + configurationStore.setConfiguration(configuration) + }) + + afterAll(() => { + window.location.assign = assign + }) + + beforeEach(() => { + // allow all filings referenced in this component + // some of these are normally mutually exclusive, but that's OK for testing + businessStore.setAllowedActions({ + digitalBusinessCard: false, + filing: { + filingTypes: [ + { name: FilingTypes.PUT_BACK_ON } + ] + } as any + }) + businessStore.setLegalType(CorpTypeCd.SOLE_PROP) // firm + businessStore.setState(EntityState.HISTORICAL) // not active + businessStore.setAdminFreeze(false) // not frozen + businessStore.setIdentifier('SP1234567') // business id + }) + + it('renders the staff notation dialog correction for Put Back On', async () => { + vi.spyOn(utils, 'GetFeatureFlag').mockImplementation(flag => { + if (flag === 'supported-put-back-on-entities') return 'SP' + return null + }) + const wrapper = mount(StaffNotation, { vuetify }) + // open menu + await wrapper.find('.menu-btn').trigger('click') + expect(wrapper.vm.$data.expand).toBe(true) + + // find and click respective item + await wrapper.find('.v-list-item[data-type="put-back-on"]').trigger('click') + await Vue.nextTick() + const menuItemUnderTest = wrapper.find('[data-type="put-back-on"]') + + // verify enabled Put Back On option + expect(menuItemUnderTest.classes()).not.toContain('v-list-item--disabled') + + // verify flag + expect(wrapper.vm.$data.isAddingPutBackOn).toBeTruthy() + + // verify modal title + expect(wrapper.find('#dialog-title').text()).toContain('Correction - Put Back On') + + // verify textarea label + expect(wrapper.find('#notation-form .notation-textarea .v-label').text()).toBe('Add Detail') + + // click Cancel button + await wrapper.find('#dialog-cancel-button').trigger('click') + await Vue.nextTick() // need to wait longer here + expect(wrapper.vm.$data.isAddingRegistrarsNotation).toBeFalsy() + + // verify Close event + expect(wrapper.emitted('close').pop()).toEqual([false]) + + wrapper.destroy() + }) +}) + describe('StaffNotation', () => { const { assign } = window.location @@ -262,6 +339,7 @@ describe('StaffNotation', () => { it('renders drop down menu correctly - historical', async () => { vi.spyOn(utils, 'GetFeatureFlag').mockImplementation(flag => { if (flag === 'supported-restoration-entities') return 'SP' + if (flag === 'supported-put-back-on-entities') return 'SP' return null }) businessStore.setState(EntityState.HISTORICAL) @@ -417,6 +495,10 @@ describe('StaffNotation', () => { } it('renders the staff notation dialog correction for Put Back On', async () => { + vi.spyOn(utils, 'GetFeatureFlag').mockImplementation(flag => { + if (flag === 'supported-put-back-on-entities') return 'SP' + return null + }) const wrapper = mount(StaffNotation, { vuetify }) // open menu diff --git a/tests/unit/TodoList1.spec.ts b/tests/unit/TodoList1.spec.ts index 8b699d367..0e12fab39 100644 --- a/tests/unit/TodoList1.spec.ts +++ b/tests/unit/TodoList1.spec.ts @@ -1606,7 +1606,7 @@ describe('TodoList - UI - Amalgamation Applications', () => { businessStore.setLegalType(CorpTypeCd.BC_COMPANY) }) - it('displays a DRAFT numbered amalgamation application', async () => { + it('displays a DRAFT numbered regular amalgamation application', async () => { // init store rootStore.nameRequest = null rootStore.tasks = [ @@ -1645,7 +1645,7 @@ describe('TodoList - UI - Amalgamation Applications', () => { wrapper.destroy() }) - it('displays a DRAFT named amalgamation application', async () => { + it('displays a DRAFT named regular amalgamation application', async () => { // init store rootStore.nameRequest = {} rootStore.tasks = [ @@ -1684,6 +1684,166 @@ describe('TodoList - UI - Amalgamation Applications', () => { wrapper.destroy() }) + + it('displays a DRAFT numbered short form horizontal amalgamation application', async () => { + // init store + rootStore.nameRequest = null + rootStore.tasks = [ + { + task: { + filing: { + header: { + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.DRAFT + }, + amalgamationApplication: { + type: AmalgamationTypes.HORIZONTAL + }, + displayName: 'BC Limited Company Amalgamation Application - Horizontal' + } as any + }, + enabled: true, + order: 1 + } + ] + + const wrapper = mount(TodoList, { vuetify }) + const vm = wrapper.vm as any + await flushPromises() + + expect(vm.todoItems.length).toEqual(1) + expect(wrapper.findAll('.todo-item').length).toEqual(1) + expect(wrapper.emitted('todo-count')).toEqual([[1]]) + expect(wrapper.find('.no-results').exists()).toBe(false) + + const item = wrapper.find('.list-item') + expect(item.find('.list-item__title').text()).toContain('BC Limited Company Amalgamation Application - Horizontal') + expect(item.find('.list-item__subtitle').text()).toBe('DRAFT') + expect(item.find('.btn-draft-resume').text()).toBe('Fill out Amalgamation Application') + + wrapper.destroy() + }) + + it('displays a DRAFT named short form horizontal amalgamation application', async () => { + // init store + rootStore.nameRequest = {} + rootStore.tasks = [ + { + task: { + filing: { + header: { + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.DRAFT + }, + amalgamationApplication: { + type: AmalgamationTypes.HORIZONTAL + }, + displayName: 'My Amalgamated Company Amalgamation Application - Horizontal' + } as any + }, + enabled: true, + order: 1 + } + ] + + const wrapper = mount(TodoList, { vuetify }) + const vm = wrapper.vm as any + await flushPromises() + + expect(vm.todoItems.length).toEqual(1) + expect(wrapper.findAll('.todo-item').length).toEqual(1) + expect(wrapper.emitted('todo-count')).toEqual([[1]]) + expect(wrapper.find('.no-results').exists()).toBe(false) + + const item = wrapper.find('.list-item') + expect(item.find('.list-item__title').text()) + .toContain('My Amalgamated Company Amalgamation Application - Horizontal') + expect(item.find('.expand-btn').text()).toBe('View Details') + expect(item.find('.list-item__subtitle').text()).toContain('NR APPROVED') + expect(item.find('.btn-draft-resume').text()).toBe('Fill out Amalgamation Application') + + wrapper.destroy() + }) + + it('displays a DRAFT numbered short form vertical amalgamation application', async () => { + // init store + rootStore.nameRequest = null + rootStore.tasks = [ + { + task: { + filing: { + header: { + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.DRAFT + }, + amalgamationApplication: { + type: AmalgamationTypes.VERTICAL + }, + displayName: 'BC Limited Company Amalgamation Application - Vertical' + } as any + }, + enabled: true, + order: 1 + } + ] + + const wrapper = mount(TodoList, { vuetify }) + const vm = wrapper.vm as any + await flushPromises() + + expect(vm.todoItems.length).toEqual(1) + expect(wrapper.findAll('.todo-item').length).toEqual(1) + expect(wrapper.emitted('todo-count')).toEqual([[1]]) + expect(wrapper.find('.no-results').exists()).toBe(false) + + const item = wrapper.find('.list-item') + expect(item.find('.list-item__title').text()).toContain('BC Limited Company Amalgamation Application - Vertical') + expect(item.find('.list-item__subtitle').text()).toBe('DRAFT') + expect(item.find('.btn-draft-resume').text()).toBe('Fill out Amalgamation Application') + + wrapper.destroy() + }) + + it('displays a DRAFT named short form vertical amalgamation application', async () => { + // init store + rootStore.nameRequest = {} + rootStore.tasks = [ + { + task: { + filing: { + header: { + name: FilingTypes.AMALGAMATION_APPLICATION, + status: FilingStatus.DRAFT + }, + amalgamationApplication: { + type: AmalgamationTypes.VERTICAL + }, + displayName: 'My Amalgamated Company Amalgamation Application - Vertical' + } as any + }, + enabled: true, + order: 1 + } + ] + + const wrapper = mount(TodoList, { vuetify }) + const vm = wrapper.vm as any + await flushPromises() + + expect(vm.todoItems.length).toEqual(1) + expect(wrapper.findAll('.todo-item').length).toEqual(1) + expect(wrapper.emitted('todo-count')).toEqual([[1]]) + expect(wrapper.find('.no-results').exists()).toBe(false) + + const item = wrapper.find('.list-item') + expect(item.find('.list-item__title').text()) + .toContain('My Amalgamated Company Amalgamation Application - Vertical') + expect(item.find('.expand-btn').text()).toBe('View Details') + expect(item.find('.list-item__subtitle').text()).toContain('NR APPROVED') + expect(item.find('.btn-draft-resume').text()).toBe('Fill out Amalgamation Application') + + wrapper.destroy() + }) }) describe('TodoList - Click Tests', () => { diff --git a/tests/unit/filings.json b/tests/unit/filings.json index 734e614ee..b3584d0c3 100644 --- a/tests/unit/filings.json +++ b/tests/unit/filings.json @@ -591,11 +591,66 @@ ] }, "displayLedger": true, - "displayName": "Amalgamation Application - Regular", + "displayName": "Amalgamation Application (Regular)", "documentsLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751/documents", "effectiveDate": "Fri, 03 Feb 2023 18:52:00 GMT", "filingId": 112751, "filingLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751", + "filingSubType": "regular", + "isFutureEffective": false, + "name": "amalgamationApplication", + "paymentStatusCode": null, + "status": "COMPLETED", + "submittedDate": "Fri, 03 Feb 2023 18:52:00 GMT", + "submitter": "Registry Staff" + }, + { + "availableOnPaperOnly": false, + "businessIdentifier": "BC1234567", + "commentsCount": 0, + "commentsLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751/comments", + "data": { + "amalgamationApplication": { + "type": "horizontal" + }, + "legalFilings": [ + "amalgamation" + ] + }, + "displayLedger": true, + "displayName": "Amalgamation Application Short-form (Horizontal)", + "documentsLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751/documents", + "effectiveDate": "Fri, 03 Feb 2023 18:52:00 GMT", + "filingId": 112751, + "filingLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751", + "filingSubType": "horizontal", + "isFutureEffective": false, + "name": "amalgamationApplication", + "paymentStatusCode": null, + "status": "COMPLETED", + "submittedDate": "Fri, 03 Feb 2023 18:52:00 GMT", + "submitter": "Registry Staff" + }, + { + "availableOnPaperOnly": false, + "businessIdentifier": "BC1234567", + "commentsCount": 0, + "commentsLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751/comments", + "data": { + "amalgamationApplication": { + "type": "vertical" + }, + "legalFilings": [ + "amalgamation" + ] + }, + "displayLedger": true, + "displayName": "Amalgamation Application Short-form (Vertical)", + "documentsLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751/documents", + "effectiveDate": "Fri, 03 Feb 2023 18:52:00 GMT", + "filingId": 112751, + "filingLink": "https://legal-api-dev.apps.silver.devops.gov.bc.ca/api/v2/businesses/BC1234567/filings/112751", + "filingSubType": "vertical", "isFutureEffective": false, "name": "amalgamationApplication", "paymentStatusCode": null, diff --git a/vite.config.js b/vite.config.js index ac899c16a..32e0aa7f7 100644 --- a/vite.config.js +++ b/vite.config.js @@ -11,18 +11,15 @@ const appName = JSON.parse(packageJson).appName const appVersion = JSON.parse(packageJson).version const sbcName = JSON.parse(packageJson).sbcName const sbcVersion = JSON.parse(packageJson).dependencies['sbc-common-components'] -const aboutText1 = (appName && appVersion) ? `${appName} v${appVersion}` : '' -const aboutText2 = (sbcName && sbcVersion) ? `${sbcName} v${sbcVersion}` : '' +const aboutApp = (appName && appVersion) ? `${appName} v${appVersion}` : 'Unknown APP' +const aboutSbc = (sbcName && sbcVersion) ? `${sbcName} v${sbcVersion}` : 'Unknown SBC' // https://vitejs.dev/config/ export default defineConfig(() => { return { define: { - 'import.meta.env.ABOUT_TEXT': - (aboutText1 && aboutText2) ? `"${aboutText1}<br>${aboutText2}"` - : aboutText1 ? `"${aboutText1}"` - : aboutText2 ? `"${aboutText2}"` - : '' + 'import.meta.env.ABOUT_APP': `"${aboutApp}"`, + 'import.meta.env.ABOUT_SBC': `"${aboutSbc}"` }, envPrefix: 'VUE_APP_', // Need to remove this after fixing vaults. Use import.meta.env with VUE_APP. plugins: [