diff --git a/apps/example-app-karma/src/app/issues/issue-373.spec.ts b/apps/example-app-karma/src/app/issues/issue-373.spec.ts
new file mode 100644
index 00000000..cdbd0ccb
--- /dev/null
+++ b/apps/example-app-karma/src/app/issues/issue-373.spec.ts
@@ -0,0 +1,69 @@
+import { Component } from '@angular/core';
+import { FormBuilder, FormControl, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
+import userEvent from '@testing-library/user-event';
+import { render, screen } from '@testing-library/angular';
+
+@Component({
+ selector: 'app-login',
+ template: `
Login
+
+ `,
+})
+class LoginComponent {
+ form: FormGroup = this.fb.group({
+ email: ['', [Validators.required]],
+ password: ['', [Validators.required]],
+ });
+
+ constructor(private fb: FormBuilder) {}
+
+ get email(): FormControl {
+ return this.form.get('email') as FormControl;
+ }
+
+ get password(): FormControl {
+ return this.form.get('password') as FormControl;
+ }
+
+ onSubmit(_fg: FormGroup): void {
+ // do nothing
+ }
+}
+
+describe('LoginComponent', () => {
+ const setup = async () => {
+ return render(LoginComponent, {
+ imports: [ReactiveFormsModule],
+ });
+ };
+
+ it('should create a component with inputs and a button to submit', async () => {
+ await setup();
+
+ expect(screen.getByRole('textbox', { name: 'email' })).toBeInTheDocument();
+ expect(screen.getByLabelText('password')).toBeInTheDocument();
+ expect(screen.getByRole('button', { name: 'submit' })).toBeInTheDocument();
+ });
+
+ it('should show a message required to password and login and a button must be disabled', async () => {
+ await setup();
+
+ await userEvent.click(screen.getByRole('textbox', { name: 'email' }));
+ await userEvent.click(screen.getByLabelText('password'));
+ await userEvent.tab();
+ await userEvent.click(screen.getByRole('button', { name: 'submit' }));
+
+ expect(screen.getAllByText(/required/i).length).toBe(2);
+ expect(screen.getByRole('button', { name: 'submit' })).toBeDisabled();
+ });
+});
diff --git a/other/hedgehog.png b/other/hedgehog.png
index ce0a940c..3d84640a 100644
Binary files a/other/hedgehog.png and b/other/hedgehog.png differ
diff --git a/package.json b/package.json
index 1cbf74eb..ff89f736 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
"@ngrx/store": "15.1.0",
"@nrwl/angular": "15.4.5",
"@nrwl/nx-cloud": "15.0.2",
- "@testing-library/dom": "^8.19.1",
+ "@testing-library/dom": "^9.0.0",
"rxjs": "7.5.6",
"tslib": "~2.3.1",
"zone.js": "~0.11.4"
diff --git a/projects/testing-library/package.json b/projects/testing-library/package.json
index 168d767d..975050c1 100644
--- a/projects/testing-library/package.json
+++ b/projects/testing-library/package.json
@@ -35,7 +35,7 @@
"@angular/core": ">= 15.1.0"
},
"dependencies": {
- "@testing-library/dom": "^8.0.0",
+ "@testing-library/dom": "^9.0.0",
"tslib": "^2.3.1"
},
"publishConfig": {