npm.io
5.4.2 • Published 6d ago

@testing-library/svelte

Licence
MIT
Version
5.4.2
Deps
2
Size
38 kB
Vulns
0
Weekly
657.8K
Stars
661

Svelte Testing Library

chipmunk

Simple and complete Svelte testing utilities that encourage good testing practices.

Read The Docs | Edit the docs | Examples

Build Status Code Coverage version downloads MIT License

All Contributors PRs Welcome Code of Conduct Discord

Watch on GitHub Star on GitHub Tweet


Table of Contents

The Problem

You want to write maintainable tests for your Svelte components.

This Solution

@testing-library/svelte is a lightweight library for testing Svelte components. It provides functions on top of svelte and @testing-library/dom so you can mount Svelte components and query their rendered output in the DOM. Its primary guiding principle is:

The more your tests resemble the way your software is used, the more confidence they can give you.

Installation

This module is distributed via npm which is bundled with node and should be installed as one of your project's devDependencies:

npm install --save-dev @testing-library/svelte

This library supports svelte versions 3, 4, and 5.

You may also be interested in installing @testing-library/jest-dom so you can use the custom jest matchers.

Setup

We recommend using @testing-library/svelte with Vitest as your test runner. To get started, add the svelteTesting plugin to your Vite or Vitest config.

  // vite.config.js
  import { svelte } from '@sveltejs/vite-plugin-svelte'
+ import { svelteTesting } from '@testing-library/svelte/vite'

  export default defineConfig({
    plugins: [
      svelte(),
+     svelteTesting(),
    ]
  });

See the setup docs for more detailed setup instructions, including for other test runners like Jest.

Auto-cleanup

In Vitest (via the svelteTesting plugin) and Jest (via the beforeEach and afterEach globals), this library will automatically setup and cleanup the test environment before and after each test.

To do your own cleanup, or if you're using another framework, call the setup and cleanup functions yourself:

import { cleanup, render, setup } from '@testing-library/svelte'

// before
await setup()

// test
render(/* ... */)

// after
cleanup()

To disable auto-setup and cleanup in Vitest, set the autoCleanup option of the plugin to false:

svelteTesting({ autoCleanup: false })

To disable auto-cleanup in Jest and other frameworks with global test hooks, set the STL_SKIP_AUTO_CLEANUP environment variable:

STL_SKIP_AUTO_CLEANUP=1 jest

Docs

See the docs over at the Testing Library website.

Issues

Looking to contribute? Look for the Good First Issue label.

Bugs

Please file an issue for bugs, missing documentation, or unexpected behavior.

See Bugs

Feature Requests

Please file an issue to suggest new features. Vote on feature requests by adding a . This helps maintainers prioritize what to work on.

See Feature Requests

Questions

For questions related to using the library, please visit a support community instead of filing an issue on GitHub.

Contributors

Thanks goes to these people (emoji key):

Ben Monro
Ben Monro

Emil Tholin
Emil Tholin

Eduardo Rabelo
Eduardo Rabelo

Tim Deschryver
Tim Deschryver

Emanuele
Emanuele

pngwn
pngwn

Sebastian Silbermann
Sebastian Silbermann

Rahim Alwer
Rahim Alwer

Bob
Bob

Ron Merkin
Ron Merkin

Ben McCann
Ben McCann

John Bowser
John Bowser

Yoann
Yoann

Yanick Champoux
Yanick Champoux

Michael Cousins
Michael Cousins

José Pablo Ramírez Vargas
José Pablo Ramírez Vargas

Stefan Hoelzl
Stefan Hoelzl

Brady Isom
Brady Isom

Kieran Pilkington
Kieran Pilkington

Cezary Szymański
Cezary Szymański

Mykola
Mykola

axel7083
axel7083

This project follows the all-contributors specification. Contributions of any kind welcome!

Keywords