diff --git a/plugins/scaffolder-react/src/next/components/TemplateGroup/TemplateGroup.test.tsx b/plugins/scaffolder-react/src/next/components/TemplateGroup/TemplateGroup.test.tsx index 63c06e778b..02756839c9 100644 --- a/plugins/scaffolder-react/src/next/components/TemplateGroup/TemplateGroup.test.tsx +++ b/plugins/scaffolder-react/src/next/components/TemplateGroup/TemplateGroup.test.tsx @@ -23,7 +23,9 @@ import { TemplateEntityV1beta3 } from '@backstage/plugin-scaffolder-common'; describe('TemplateGroup', () => { it('should return a message when no templates are passed in', async () => { - const { getByText } = render(); + const { getByText } = render( + , + ); expect( getByText(/No templates found that match your filter/), @@ -31,36 +33,47 @@ describe('TemplateGroup', () => { }); it('should render a card for each template with the template being passed as a prop', () => { - const mockTemplates: TemplateEntityV1beta3[] = [ + const mockOnSelected = jest.fn(); + const mockTemplates: { template: TemplateEntityV1beta3 }[] = [ { - apiVersion: 'scaffolder.backstage.io/v1beta3', - kind: 'Template', - metadata: { name: 'test' }, - spec: { - parameters: [], - steps: [], - type: 'website', + template: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + kind: 'Template', + metadata: { name: 'test' }, + spec: { + parameters: [], + steps: [], + type: 'website', + }, }, }, { - apiVersion: 'scaffolder.backstage.io/v1beta3', - kind: 'Template', - metadata: { name: 'test2' }, - spec: { - parameters: [], - steps: [], - type: 'service', + template: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + kind: 'Template', + metadata: { name: 'test2' }, + spec: { + parameters: [], + steps: [], + type: 'service', + }, }, }, ]; - render(); + render( + , + ); expect(TemplateCard).toHaveBeenCalledTimes(2); - for (const template of mockTemplates) { + for (const { template } of mockTemplates) { expect(TemplateCard).toHaveBeenCalledWith( - expect.objectContaining({ template }), + expect.objectContaining({ template, onSelected: mockOnSelected }), {}, ); } @@ -68,32 +81,37 @@ describe('TemplateGroup', () => { it('should use the passed in TemplateCard prop to render the template card', () => { const mockTemplateCardComponent = jest.fn(() => null); - - const mockTemplates: TemplateEntityV1beta3[] = [ + const mockOnSelected = jest.fn(); + const mockTemplates: { template: TemplateEntityV1beta3 }[] = [ { - apiVersion: 'scaffolder.backstage.io/v1beta3', - kind: 'Template', - metadata: { name: 'test' }, - spec: { - parameters: [], - steps: [], - type: 'website', + template: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + kind: 'Template', + metadata: { name: 'test' }, + spec: { + parameters: [], + steps: [], + type: 'website', + }, }, }, { - apiVersion: 'scaffolder.backstage.io/v1beta3', - kind: 'Template', - metadata: { name: 'test2' }, - spec: { - parameters: [], - steps: [], - type: 'service', + template: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + kind: 'Template', + metadata: { name: 'test2' }, + spec: { + parameters: [], + steps: [], + type: 'service', + }, }, }, ]; render( { expect(mockTemplateCardComponent).toHaveBeenCalledTimes(2); - for (const template of mockTemplates) { + for (const { template } of mockTemplates) { expect(mockTemplateCardComponent).toHaveBeenCalledWith( - expect.objectContaining({ template }), + expect.objectContaining({ + onSelected: mockOnSelected, + template, + }), {}, ); } }); it('should render the title when no templates passed', () => { - const { getByText } = render(); + const { getByText } = render( + , + ); expect(getByText('Test')).toBeInTheDocument(); }); it('should render the title when there are templates in the list', () => { - const mockTemplates: TemplateEntityV1beta3[] = [ + const mockTemplates: { template: TemplateEntityV1beta3 }[] = [ { - apiVersion: 'scaffolder.backstage.io/v1beta3', - kind: 'Template', - metadata: { name: 'test' }, - spec: { parameters: [], steps: [], type: 'website' }, + template: { + apiVersion: 'scaffolder.backstage.io/v1beta3', + kind: 'Template', + metadata: { name: 'test' }, + spec: { parameters: [], steps: [], type: 'website' }, + }, }, ]; const { getByText } = render( - , + , ); expect(getByText('Test')).toBeInTheDocument(); @@ -135,7 +164,11 @@ describe('TemplateGroup', () => { it('should allow for passing through a user given title component', () => { const TitleComponent =

Im a custom header

; const { getByText } = render( - , + , ); expect(getByText('Im a custom header')).toBeInTheDocument();