diff --git a/apps/example-app/src/app/examples/02-input-output.spec.ts b/apps/example-app/src/app/examples/02-input-output.spec.ts index 663d63e0..f1bd4a1c 100644 --- a/apps/example-app/src/app/examples/02-input-output.spec.ts +++ b/apps/example-app/src/app/examples/02-input-output.spec.ts @@ -33,8 +33,8 @@ test('is possible to set input and listen for output', async () => { test('is possible to set input and listen for output with the template syntax', async () => { const sendSpy = jest.fn(); - await render(InputOutputComponent, { - template: '', + await render('', { + declarations: [InputOutputComponent], componentProperties: { sendValue: sendSpy, }, diff --git a/apps/example-app/src/app/examples/11-ng-content.spec.ts b/apps/example-app/src/app/examples/11-ng-content.spec.ts index 14a1630c..2dedd809 100644 --- a/apps/example-app/src/app/examples/11-ng-content.spec.ts +++ b/apps/example-app/src/app/examples/11-ng-content.spec.ts @@ -1,4 +1,3 @@ -import { TestBed } from '@angular/core/testing'; import { render, screen } from '@testing-library/angular'; import { CellComponent } from './11-ng-content'; @@ -6,9 +5,8 @@ import { CellComponent } from './11-ng-content'; test('it is possible to test ng-content without selector', async () => { const projection = 'it should be showed into a p element!'; - TestBed.overrideComponent(CellComponent, { set: { selector: 'cell' } }); - await render(CellComponent, { - template: `${projection}`, + await render(`${projection}`, { + declarations: [CellComponent] }); expect(screen.getByText(projection)).toBeInTheDocument(); diff --git a/apps/example-app/src/app/examples/11-ng-content.ts b/apps/example-app/src/app/examples/11-ng-content.ts index 302563f1..47845919 100644 --- a/apps/example-app/src/app/examples/11-ng-content.ts +++ b/apps/example-app/src/app/examples/11-ng-content.ts @@ -1,6 +1,7 @@ import { Component, ChangeDetectionStrategy } from '@angular/core'; @Component({ + selector: 'app-fixture', template: `

diff --git a/apps/example-app/src/app/examples/17-component-with-attribute-selector.spec.ts b/apps/example-app/src/app/examples/17-component-with-attribute-selector.spec.ts new file mode 100644 index 00000000..cd6334d1 --- /dev/null +++ b/apps/example-app/src/app/examples/17-component-with-attribute-selector.spec.ts @@ -0,0 +1,14 @@ +import { render, screen } from '@testing-library/angular'; +import {ComponentWithAttributeSelectorComponent} from './17-component-with-attribute-selector'; + +// Note: At this stage it is not possible to use the render(ComponentWithAttributeSelectorComponent, {...}) syntax +// for components with attribute selectors! +test('is possible to set input of component with attribute selector through template', async () => { + await render(``, { + declarations: [ComponentWithAttributeSelectorComponent] + }); + + const valueControl = screen.getByTestId('value'); + + expect(valueControl).toHaveTextContent('42'); +}); diff --git a/apps/example-app/src/app/examples/17-component-with-attribute-selector.ts b/apps/example-app/src/app/examples/17-component-with-attribute-selector.ts new file mode 100644 index 00000000..2d0b904b --- /dev/null +++ b/apps/example-app/src/app/examples/17-component-with-attribute-selector.ts @@ -0,0 +1,11 @@ +import { Component, Input } from '@angular/core'; + +@Component({ + selector: 'app-fixture-component-with-attribute-selector[value]', + template: ` + {{ value }} + `, +}) +export class ComponentWithAttributeSelectorComponent { + @Input() value!: number; +}