diff --git a/packages/playwright-ct-core/src/tsxTransform.ts b/packages/playwright-ct-core/src/tsxTransform.ts index a27410e5c0..4867a4d110 100644 --- a/packages/playwright-ct-core/src/tsxTransform.ts +++ b/packages/playwright-ct-core/src/tsxTransform.ts @@ -147,11 +147,15 @@ function collectClassMountUsages(node: T.Node): Set { const names = new Set(); traverse(node, { enter: p => { - // Treat calls to mount as component usages. - // e.g. mount(MyComponent, ...) - if (t.isCallExpression(p.node) && t.isIdentifier(p.node.callee) && p.node.callee.name === 'mount' && t.isIdentifier(p.node.arguments[0])) - names.add(p.node.arguments[0].name); - + // Treat calls to mount and all identifiers in arguments as component usages. + // e.g. mount(MyComponent, { imports: [OtherComponent], providers: [Token]}) + if (t.isCallExpression(p.node) && t.isIdentifier(p.node.callee) && p.node.callee.name === 'mount') { + p.traverse({ + Identifier: p => { + names.add(p.node.name); + } + }); + } } }); return names; diff --git a/tests/components/ct-angular/tests/template.spec.ts b/tests/components/ct-angular/tests/template.spec.ts index 50310a7e41..52e0263e36 100644 --- a/tests/components/ct-angular/tests/template.spec.ts +++ b/tests/components/ct-angular/tests/template.spec.ts @@ -4,7 +4,7 @@ import { expect, test } from "@playwright/experimental-ct-angular" test('render a template', async ({ mount }) => { const component = await mount('

{{ 1 + 1 }}

'); - await expect(component.getByRole('heading')).toContainText('2'); + await expect(component).toHaveText('2'); }) test('render a template with child components', async ({ mount }) => { @@ -38,7 +38,7 @@ test('render a template with outputs', async ({ mount }) => { } }); - component.getByRole('button').click(); + await component.getByRole('button').click(); await expect(async () => {expect(_message).toBe('hello')}).toPass(); -}) \ No newline at end of file +})