From f3e83b092194be1332f71264e3e08b2792afd679 Mon Sep 17 00:00:00 2001 From: meawong Date: Thu, 27 Aug 2026 16:35:57 -0700 Subject: [PATCH 1/3] 34564 - Add completing party section to CCO Output --- .../consentContinuationOut.html | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/legal-api/report-templates/consentContinuationOut.html b/legal-api/report-templates/consentContinuationOut.html index 6d574963c8..8ac7dd3868 100644 --- a/legal-api/report-templates/consentContinuationOut.html +++ b/legal-api/report-templates/consentContinuationOut.html @@ -38,8 +38,26 @@
-
New jurisdiction
-
{{ jurisdiction }}
+
Foreign jurisdiction into which the company is continuing:
+
{{ jurisdiction }}
+
+ +
+
+
Completing Party Confirmation
+
+ I, + {{ header.certifiedBy }}, + confirm that the laws of the foreign jurisdiction to which the continued corporation will be + subject provide, in effect, for the following: +
    +
  • the property, rights and interest of the company continue to be the property, rights and interests of the continued corporation,
  • +
  • the continued corporation continues to be liable for the obligations of the company,
  • +
  • an existing cause of action, claim or liability to prosecution is unaffected,
  • +
  • a legal proceeding being prosecuted or pending by or against the company may be prosecuted or its prosecution may be continued, as the case may be, by or against the continued corporation, and
  • +
  • a conviction against, or a ruling, or judgment in favour of or against, the company may be enforced by or against the continued corporation.
  • +
+
From a72b114889696297e980f410739cd339375da607 Mon Sep 17 00:00:00 2001 From: meawong Date: Fri, 28 Aug 2026 10:25:36 -0700 Subject: [PATCH 2/3] 34564 - Wire up CCO to require certified by validation --- .../filings/validations/common_validations.py | 2 +- .../validations/test_common_validations.py | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/legal-api/src/legal_api/services/filings/validations/common_validations.py b/legal-api/src/legal_api/services/filings/validations/common_validations.py index 79b8051680..45535876e0 100644 --- a/legal-api/src/legal_api/services/filings/validations/common_validations.py +++ b/legal-api/src/legal_api/services/filings/validations/common_validations.py @@ -1451,7 +1451,7 @@ def validate_certified_by(filing_json: dict, filing_type: str, legal_type: str) # so certifiedBy is required for them on a corp incorporation application api_login_source = "API_GW" # jwt loginSource of an API gateway user current_user = getattr(request_ctx, "current_user", None) if has_request_context() else None - if (filing_type == CoreFiling.FilingTypes.INCORPORATIONAPPLICATION + if ((filing_type == CoreFiling.FilingTypes.INCORPORATIONAPPLICATION or CoreFiling.FilingTypes.CONSENTCONTINUATIONOUT) and current_user and (jwt.validate_roles(current_user, [STAFF_ROLE]) or current_user.get("loginSource") == api_login_source)): diff --git a/legal-api/tests/unit/services/filings/validations/test_common_validations.py b/legal-api/tests/unit/services/filings/validations/test_common_validations.py index b694b30074..013a2bbda0 100644 --- a/legal-api/tests/unit/services/filings/validations/test_common_validations.py +++ b/legal-api/tests/unit/services/filings/validations/test_common_validations.py @@ -35,6 +35,7 @@ CHANGE_OF_REGISTRATION, CHANGE_OF_REGISTRATION_TEMPLATE, CONTINUATION_IN, + CONSENT_CONTINUATION_OUT, CORRECTION_INCORPORATION, DISSOLUTION, FILING_HEADER, @@ -605,6 +606,11 @@ def test_validate_certified_by_corps(session, legal_type, input_value, expected_ assert errors[0]['error'] == 'Certified by field is required.' assert errors[0]['path'] == '/filing/header/certifiedBy' + +@pytest.mark.parametrize('filing_type', [ + CoreFiling.FilingTypes.INCORPORATIONAPPLICATION, + CoreFiling.FilingTypes.CONSENTCONTINUATIONOUT, +]) @pytest.mark.parametrize('test_name, roles, login_source, certified_by, expected_error', [ ('api_user_missing', [], 'API_GW', '', 'Certified by field is required.'), ('api_user_whitespace', [], 'API_GW', ' John Doe ', 'Certified by field cannot start or end with whitespace.'), @@ -613,12 +619,18 @@ def test_validate_certified_by_corps(session, legal_type, input_value, expected_ ('staff_valid', ['staff'], 'IDIR', 'John Doe', None), ('public_user_not_required', [], 'BCSC', '', None), ]) -def test_validate_certified_by_corps_completing_party(app, session, test_name, roles, - login_source, certified_by, expected_error): - """Corps IA requires certifiedBy for staff and API users (API users identified by loginSource).""" +def test_validate_certified_by_corps_completing_party(app, session, filing_type, test_name, roles, + login_source, certified_by, expected_error): + """Corps IA and CCO require certifiedBy for staff and API users (API users identified by loginSource).""" + filing_type_data = { + CoreFiling.FilingTypes.INCORPORATIONAPPLICATION: ('incorporationApplication', INCORPORATION), + CoreFiling.FilingTypes.CONSENTCONTINUATIONOUT: ('consentContinuationOut', CONSENT_CONTINUATION_OUT), + } + filing_key, filing_data = filing_type_data[filing_type] + filing = copy.deepcopy(FILING_HEADER) filing['filing']['header']['certifiedBy'] = certified_by - filing['filing']['incorporationApplication'] = INCORPORATION + filing['filing'][filing_key] = filing_data with ( patch('legal_api.services.filings.validations.common_validations.jwt.validate_roles', @@ -627,7 +639,7 @@ def test_validate_certified_by_corps_completing_party(app, session, test_name, r ): from flask.globals import request_ctx request_ctx.current_user = {'sub': 'test-user', 'loginSource': login_source} - errors = validate_certified_by(filing, 'incorporationApplication', 'BEN') + errors = validate_certified_by(filing, filing_type, 'BEN') if expected_error: assert errors From e429552eaf79dca3c8831ef88eff8ef422778e47 Mon Sep 17 00:00:00 2001 From: meawong Date: Fri, 28 Aug 2026 17:00:04 -0700 Subject: [PATCH 3/3] 34456 - fix logic --- .../services/filings/validations/common_validations.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/legal-api/src/legal_api/services/filings/validations/common_validations.py b/legal-api/src/legal_api/services/filings/validations/common_validations.py index 45535876e0..cd7dc2f3f7 100644 --- a/legal-api/src/legal_api/services/filings/validations/common_validations.py +++ b/legal-api/src/legal_api/services/filings/validations/common_validations.py @@ -1451,7 +1451,8 @@ def validate_certified_by(filing_json: dict, filing_type: str, legal_type: str) # so certifiedBy is required for them on a corp incorporation application api_login_source = "API_GW" # jwt loginSource of an API gateway user current_user = getattr(request_ctx, "current_user", None) if has_request_context() else None - if ((filing_type == CoreFiling.FilingTypes.INCORPORATIONAPPLICATION or CoreFiling.FilingTypes.CONSENTCONTINUATIONOUT) + if (filing_type in (CoreFiling.FilingTypes.INCORPORATIONAPPLICATION, + CoreFiling.FilingTypes.CONSENTCONTINUATIONOUT) and current_user and (jwt.validate_roles(current_user, [STAFF_ROLE]) or current_user.get("loginSource") == api_login_source)):