diff --git a/packages/editor-ui/src/components/CredentialEdit/OauthButton.vue b/packages/editor-ui/src/components/CredentialEdit/OauthButton.vue index 92b3079a0ae45..27da6ee5702c2 100644 --- a/packages/editor-ui/src/components/CredentialEdit/OauthButton.vue +++ b/packages/editor-ui/src/components/CredentialEdit/OauthButton.vue @@ -1,11 +1,10 @@ diff --git a/packages/editor-ui/src/components/CredentialEdit/__tests__/OauthButton.test.ts b/packages/editor-ui/src/components/CredentialEdit/__tests__/OauthButton.test.ts new file mode 100644 index 0000000000000..d5e91e1c525ce --- /dev/null +++ b/packages/editor-ui/src/components/CredentialEdit/__tests__/OauthButton.test.ts @@ -0,0 +1,24 @@ +import userEvent from '@testing-library/user-event'; +import { createTestingPinia } from '@pinia/testing'; +import { createComponentRenderer } from '@/__tests__/render'; +import OauthButton from '@/components/CredentialEdit/OauthButton.vue'; + +const renderComponent = createComponentRenderer(OauthButton, { + pinia: createTestingPinia(), +}); + +describe('OauthButton', () => { + test.each([ + ['GoogleAuthButton', true], + ['n8n-button', false], + ])('should emit click event only once when %s is clicked', async (name, isGoogleOAuthType) => { + const { emitted, getByRole } = renderComponent({ + props: { isGoogleOAuthType }, + }); + + const button = getByRole('button'); + await userEvent.click(button); + + expect(emitted().click).toHaveLength(1); + }); +});