From 07ee6f59e8f3ecf1c795cff12f12a0d77a935727 Mon Sep 17 00:00:00 2001 From: Phan An Date: Sun, 15 May 2022 17:32:38 +0200 Subject: [PATCH] feat(test): add UserBadge component tests --- .../js/components/user/UserBadge.spec.ts | 27 +++++++++++++++++++ .../user/__snapshots__/UserBadge.spec.ts.snap | 3 +++ 2 files changed, 30 insertions(+) create mode 100644 resources/assets/js/components/user/UserBadge.spec.ts create mode 100644 resources/assets/js/components/user/__snapshots__/UserBadge.spec.ts.snap diff --git a/resources/assets/js/components/user/UserBadge.spec.ts b/resources/assets/js/components/user/UserBadge.spec.ts new file mode 100644 index 00000000..c3ee4b97 --- /dev/null +++ b/resources/assets/js/components/user/UserBadge.spec.ts @@ -0,0 +1,27 @@ +import UnitTestCase from '@/__tests__/UnitTestCase' +import factory from '@/__tests__/factory' +import { expect, it } from 'vitest' +import { eventBus } from '@/utils' +import { fireEvent } from '@testing-library/vue' +import UserBadge from './UserBadge.vue' + +new class extends UnitTestCase { + private renderComponent () { + return this.actingAs(factory('user', { + name: 'John Doe' + })).render(UserBadge) + } + + protected test () { + it('renders', () => expect(this.renderComponent().html()).toMatchSnapshot()) + + it('logs out', async () => { + const mock = this.mock(eventBus, 'emit') + const { getByTestId } = this.renderComponent() + + await fireEvent.click(getByTestId('btn-logout')) + + expect(mock).toHaveBeenCalledOnce() + }) + } +} diff --git a/resources/assets/js/components/user/__snapshots__/UserBadge.spec.ts.snap b/resources/assets/js/components/user/__snapshots__/UserBadge.spec.ts.snap new file mode 100644 index 00000000..46c3080f --- /dev/null +++ b/resources/assets/js/components/user/__snapshots__/UserBadge.spec.ts.snap @@ -0,0 +1,3 @@ +// Vitest Snapshot v1 + +exports[`renders 1`] = `Avatar of John DoeJohn Doe`;