testing-library / angular-testing-library

πŸ™ Simple and complete Angular testing utilities that encourage good testing practices
https://testing-library.com/angular
MIT License
717 stars 92 forks source link

Regression on components with inputs using a transform function #483

Closed mlz11 closed 3 months ago

mlz11 commented 3 months ago

Hello πŸ‘‹πŸ»,

I believe I encountered a regression after bumping the package @testing-library/angular from v17.1.0 to v17.2.1 while trying to use the new inputs property.

The issue arises with components that have inputs using a transform function that changes the type, such as:

 title = input.required<TitleObject, string>({
    transform: toTitleObject,
  });

Below is the test I wrote :

it('should render', async () => {
    await render(ChildComponent, {
      inputs: {
        title: 'title',
      },
    });
  });

In this case, TypeScript raises an error on the render function πŸ”΄:

Type 'typeof ChildComponent' is not assignable to type 'string'.

When modifying the input so that it has the same type as after the transformation, the TypeScript error is resolved, and the test passes 🟒:

it('should render', async () => {
    await render(ChildComponent, {
      inputs: {
        title: {title: 'title'},
      },
    });
  });

Please find a reproduction sample below:

https://github.com/mlz11/atl-issue-pr-473

If this is confirmed as a bug, I would love to contribute to resolving it.

Thanks for your help!

timdeschryver commented 3 months ago

@mlz11 it seems like this is a valid bug , thanks for opening the issue with a good reproduction!πŸ˜€ Feel free to open a PR to resolve this issue.

mlz11 commented 3 months ago

@timdeschryver thanks for your quick confirmation.

484 contains a resolution proposal !