From d9d88b7f5515bb1a79e6a756c5736eb4efef5194 Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Wed, 6 Apr 2022 18:12:47 +0200 Subject: [PATCH] chore(form-core): make testing form registration easier --- packages/form-core/package.json | 1 + .../form-core/src/registration/FormRegisteringMixin.js | 8 ++++++++ .../types/registration/FormRegisteringMixinTypes.d.ts | 2 ++ 3 files changed, 11 insertions(+) diff --git a/packages/form-core/package.json b/packages/form-core/package.json index 11ff1d772..9e13a810a 100644 --- a/packages/form-core/package.json +++ b/packages/form-core/package.json @@ -20,6 +20,7 @@ "src", "test", "test-helpers", + "test-suites", "translations", "types" ], diff --git a/packages/form-core/src/registration/FormRegisteringMixin.js b/packages/form-core/src/registration/FormRegisteringMixin.js index 73f592116..bdea2910b 100644 --- a/packages/form-core/src/registration/FormRegisteringMixin.js +++ b/packages/form-core/src/registration/FormRegisteringMixin.js @@ -42,6 +42,14 @@ const FormRegisteringMixinImplementation = superclass => disconnectedCallback() { super.disconnectedCallback(); + this.__unregisterFormElement(); + } + + /** + * Putting this in a separate method makes testing easier + * @private + */ + __unregisterFormElement() { if (this._parentFormGroup) { this._parentFormGroup.removeFormElement(/** @type {* & FormRegisteringHost} */ (this)); } diff --git a/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts b/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts index 5f36fd7ef..f369c1a4f 100644 --- a/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts +++ b/packages/form-core/types/registration/FormRegisteringMixinTypes.d.ts @@ -14,6 +14,8 @@ export declare class FormRegisteringHost { * ChoiceGroup */ protected _parentFormGroup: FormRegistrarHost | undefined; + + private __unregisterFormElement: void; } export declare function FormRegisteringImplementation>(