From cd989e387a22634b4ef83a5b5f9f54ebc5e98540 Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Mon, 9 Mar 2026 08:10:30 -0600 Subject: [PATCH 1/3] chore(tests): validate checkbox and toggle in angular lazy template-form --- .../base/src/app/lazy/app-lazy/app.module.ts | 4 +--- .../base/src/app/lazy/app-lazy/app.routes.ts | 2 +- .../template-form-routing.module.ts | 16 +++++++++++++ .../template-form.component.html | 2 ++ .../template-form/template-form.module.ts | 23 +++++++++++++++++++ .../lazy/validators/require-true.directive.ts | 18 +++++++++++++++ 6 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 packages/angular/test/base/src/app/lazy/template-form/template-form-routing.module.ts create mode 100644 packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts create mode 100644 packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts diff --git a/packages/angular/test/base/src/app/lazy/app-lazy/app.module.ts b/packages/angular/test/base/src/app/lazy/app-lazy/app.module.ts index ac0ebd501fb..caf27670d2d 100644 --- a/packages/angular/test/base/src/app/lazy/app-lazy/app.module.ts +++ b/packages/angular/test/base/src/app/lazy/app-lazy/app.module.ts @@ -28,7 +28,6 @@ import { AlertComponent } from '../alert/alert.component'; import { AccordionComponent } from '../accordion/accordion.component'; import { AccordionModalComponent } from '../accordion/accordion-modal/accordion-modal.component'; import { TabsBasicComponent } from '../tabs-basic/tabs-basic.component'; -import { TemplateFormComponent } from '../template-form/template-form.component'; @NgModule({ declarations: [ @@ -54,8 +53,7 @@ import { TemplateFormComponent } from '../template-form/template-form.component' AlertComponent, AccordionComponent, AccordionModalComponent, - TabsBasicComponent, - TemplateFormComponent + TabsBasicComponent ], imports: [ CommonModule, diff --git a/packages/angular/test/base/src/app/lazy/app-lazy/app.routes.ts b/packages/angular/test/base/src/app/lazy/app-lazy/app.routes.ts index 35a77b19cf1..2a9ef6323e1 100644 --- a/packages/angular/test/base/src/app/lazy/app-lazy/app.routes.ts +++ b/packages/angular/test/base/src/app/lazy/app-lazy/app.routes.ts @@ -34,7 +34,7 @@ export const routes: Routes = [ { path: 'textarea', loadChildren: () => import('../textarea/textarea.module').then(m => m.TextareaModule) }, { path: 'searchbar', loadChildren: () => import('../searchbar/searchbar.module').then(m => m.SearchbarModule) }, { path: 'form', component: FormComponent }, - { path: 'template-form', component: TemplateFormComponent }, + { path: 'template-form', loadChildren: () => import('../template-form/template-form.module').then(m => m.TemplateFormModule) }, { path: 'modals', component: ModalComponent }, { path: 'modal-inline', loadChildren: () => import('../modal-inline').then(m => m.ModalInlineModule) }, { path: 'modal-sheet-inline', loadChildren: () => import('../modal-sheet-inline').then(m => m.ModalSheetInlineModule) }, diff --git a/packages/angular/test/base/src/app/lazy/template-form/template-form-routing.module.ts b/packages/angular/test/base/src/app/lazy/template-form/template-form-routing.module.ts new file mode 100644 index 00000000000..c9d57690c6d --- /dev/null +++ b/packages/angular/test/base/src/app/lazy/template-form/template-form-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from "@angular/core"; +import { RouterModule } from "@angular/router"; +import { TemplateFormComponent } from "./template-form.component"; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { + path: '', + component: TemplateFormComponent + } + ]) + ], + exports: [RouterModule] +}) +export class TemplateFormRoutingModule { } diff --git a/packages/angular/test/base/src/app/lazy/template-form/template-form.component.html b/packages/angular/test/base/src/app/lazy/template-form/template-form.component.html index 870f53872f2..e6203e183a0 100644 --- a/packages/angular/test/base/src/app/lazy/template-form/template-form.component.html +++ b/packages/angular/test/base/src/app/lazy/template-form/template-form.component.html @@ -109,6 +109,7 @@ [(ngModel)]="checkboxValue" name="checkboxField" required + requireTrue #checkboxField="ngModel" id="template-checkbox-test" helper-text="You must agree to continue" @@ -133,6 +134,7 @@ [(ngModel)]="toggleValue" name="toggleField" required + requireTrue #toggleField="ngModel" id="template-toggle-test" helper-text="You must turn on to continue" diff --git a/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts b/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts new file mode 100644 index 00000000000..5a17fe1ed86 --- /dev/null +++ b/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts @@ -0,0 +1,23 @@ +import { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { FormsModule, ReactiveFormsModule } from "@angular/forms"; +import { IonicModule } from "@ionic/angular"; + +import { TemplateFormRoutingModule } from "./template-form-routing.module"; +import { TemplateFormComponent } from "./template-form.component"; +import { RequireTrueValidatorDirective } from "../validators/require-true.directive"; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + IonicModule, + TemplateFormRoutingModule, + RequireTrueValidatorDirective + ], + declarations: [ + TemplateFormComponent + ] +}) +export class TemplateFormModule { } diff --git a/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts b/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts new file mode 100644 index 00000000000..a25d9383a09 --- /dev/null +++ b/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts @@ -0,0 +1,18 @@ +import { Directive, forwardRef } from '@angular/core'; +import { NG_VALIDATORS, Validator, AbstractControl, ValidationErrors, Validators } from '@angular/forms'; + +@Directive({ + selector: '[requireTrue]', + providers: [ + { + provide: NG_VALIDATORS, + useExisting: forwardRef(() => RequireTrueValidatorDirective), + multi: true, + }, + ], +}) +export class RequireTrueValidatorDirective implements Validator { + validate(control: AbstractControl): ValidationErrors | null { + return Validators.requiredTrue(control); + } +} \ No newline at end of file From 54f1f478a3402593f8289807ef7fec18a81e9484 Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Mon, 9 Mar 2026 08:23:06 -0600 Subject: [PATCH 2/3] chore(tests): add newline at end of require-true directive file --- .../test/base/src/app/lazy/validators/require-true.directive.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts b/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts index a25d9383a09..089203aa59b 100644 --- a/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts +++ b/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts @@ -15,4 +15,4 @@ export class RequireTrueValidatorDirective implements Validator { validate(control: AbstractControl): ValidationErrors | null { return Validators.requiredTrue(control); } -} \ No newline at end of file +} From 10c8623edd22072b9ac9452caca6037fb67b47b8 Mon Sep 17 00:00:00 2001 From: Jacob Bell <228905018+OS-jacobbell@users.noreply.github.com> Date: Mon, 9 Mar 2026 09:04:25 -0600 Subject: [PATCH 3/3] chore(tests): add validators module --- .../template-form/template-form.module.ts | 4 ++-- .../lazy/validators/require-true.directive.ts | 1 + .../app/lazy/validators/validators.module.ts | 20 +++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 packages/angular/test/base/src/app/lazy/validators/validators.module.ts diff --git a/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts b/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts index 5a17fe1ed86..d25e9d41a17 100644 --- a/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts +++ b/packages/angular/test/base/src/app/lazy/template-form/template-form.module.ts @@ -5,7 +5,7 @@ import { IonicModule } from "@ionic/angular"; import { TemplateFormRoutingModule } from "./template-form-routing.module"; import { TemplateFormComponent } from "./template-form.component"; -import { RequireTrueValidatorDirective } from "../validators/require-true.directive"; +import { ValidatorsModule } from "../validators/validators.module"; @NgModule({ imports: [ @@ -14,7 +14,7 @@ import { RequireTrueValidatorDirective } from "../validators/require-true.direct ReactiveFormsModule, IonicModule, TemplateFormRoutingModule, - RequireTrueValidatorDirective + ValidatorsModule ], declarations: [ TemplateFormComponent diff --git a/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts b/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts index 089203aa59b..73baf28ff6c 100644 --- a/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts +++ b/packages/angular/test/base/src/app/lazy/validators/require-true.directive.ts @@ -10,6 +10,7 @@ import { NG_VALIDATORS, Validator, AbstractControl, ValidationErrors, Validators multi: true, }, ], + standalone: false, }) export class RequireTrueValidatorDirective implements Validator { validate(control: AbstractControl): ValidationErrors | null { diff --git a/packages/angular/test/base/src/app/lazy/validators/validators.module.ts b/packages/angular/test/base/src/app/lazy/validators/validators.module.ts new file mode 100644 index 00000000000..c135d3164b9 --- /dev/null +++ b/packages/angular/test/base/src/app/lazy/validators/validators.module.ts @@ -0,0 +1,20 @@ +import { CommonModule } from "@angular/common"; +import { NgModule } from "@angular/core"; +import { FormsModule, ReactiveFormsModule } from "@angular/forms"; + +import { RequireTrueValidatorDirective } from "./require-true.directive"; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule + ], + declarations: [ + RequireTrueValidatorDirective + ], + exports: [ + RequireTrueValidatorDirective + ] +}) +export class ValidatorsModule { }