Skip to content

Latest commit

 

History

History
43 lines (29 loc) · 884 Bytes

File metadata and controls

43 lines (29 loc) · 884 Bytes

Events

Events can be tested using spy functions. If you're using Vitest you can use vi.fn() to create a spy.

Table of contents

event.svelte

<script>
  let { onclick } = $props()
</script>

<button {onclick}>click me</button>

event.test.js

import { render, screen } from '@testing-library/svelte'
import { userEvent } from '@testing-library/user-event'
import { expect, test, vi } from 'vitest'

import Subject from './event.svelte'

test('onclick event', async () => {
  const user = userEvent.setup()
  const onclick = vi.fn()

  render(Subject, { onclick })

  const button = screen.getByRole('button')
  await user.click(button)

  expect(onclick).toHaveBeenCalledOnce()
})