From 6908ad17135844a3ead4047abc728da3945e77e3 Mon Sep 17 00:00:00 2001 From: Tim Deschryver <28659384+timdeschryver@users.noreply.github.com> Date: Tue, 13 Feb 2024 18:19:16 +0100 Subject: [PATCH] test: add test case for #435 --- package.json | 5 ++- .../tests/issues/issue-435.spec.ts | 40 +++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 projects/testing-library/tests/issues/issue-435.spec.ts diff --git a/package.json b/package.json index 4950026..0690a7f 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "@angular/compiler-cli": "17.1.0", "@angular/forms": "17.1.0", "@angular/language-service": "17.1.0", + "@nx/eslint": "17.2.8", "@nx/eslint-plugin": "17.2.8", "@nx/jest": "17.2.8", "@nx/node": "17.2.8", @@ -77,6 +78,7 @@ "eslint-config-prettier": "9.0.0", "eslint-plugin-import": "~2.25.4", "eslint-plugin-jasmine": "~4.1.3", + "eslint-plugin-jest": "^27.6.3", "eslint-plugin-jest-dom": "~4.0.1", "eslint-plugin-testing-library": "~5.0.1", "jasmine-core": "4.2.0", @@ -102,7 +104,6 @@ "semantic-release": "^18.0.0", "ts-jest": "29.1.0", "ts-node": "10.9.1", - "typescript": "5.2.2", - "@nx/eslint": "17.2.8" + "typescript": "5.2.2" } } diff --git a/projects/testing-library/tests/issues/issue-435.spec.ts b/projects/testing-library/tests/issues/issue-435.spec.ts new file mode 100644 index 0000000..6ca47bb --- /dev/null +++ b/projects/testing-library/tests/issues/issue-435.spec.ts @@ -0,0 +1,40 @@ +import { CommonModule } from '@angular/common'; +import { BehaviorSubject } from 'rxjs'; +import { Component, Inject, Injectable } from '@angular/core'; +import { screen, render } from '../../src/public_api'; + +// Service +@Injectable() +class DemoService { + buttonTitle = new BehaviorSubject('Click me'); +} + +// Component +@Component({ + selector: 'atl-issue-435', + standalone: true, + imports: [CommonModule], + providers: [DemoService], + template: ` + + `, +}) +class DemoComponent { + constructor(@Inject(DemoService) public demoService: DemoService) {} +} + +// Test +describe('DemoComponent', () => { + it('should render button', async () => { + await render(DemoComponent); + + const button = screen.getByRole('button', { + name: /Click me/, + }); + + expect(button).toBeVisible(); + }); +});