Book Image

Svelte with Test-Driven Development

By : Daniel Irvine
Book Image

Svelte with Test-Driven Development

By: Daniel Irvine

Overview of this book

Svelte is a popular front-end framework used for its focus on performance and user-friendliness, and test-driven development (TDD) is a powerful approach that helps in creating automated tests before writing code. By combining them, you can create efficient, maintainable code for modern applications. Svelte with Test-Driven Development will help you learn effective automated testing practices to build and maintain Svelte applications. In the first part of the book, you’ll find a guided walkthrough on building a SvelteKit application using the TDD workflow. You’ll uncover the main concepts for writing effective unit test cases and practical advice for developing solid, maintainable test suites that can speed up application development while remaining effective as the application evolves. In the next part of the book, you’ll focus on refactoring and advanced test techniques, such as using component mocks and writing BDD-style tests with the Cucumber.js framework. In the final part of the book, you’ll explore how to test complex application and framework features, including authentication, Svelte stores, and service workers. By the end of this book, you’ll be well-equipped to build test-driven Svelte applications by employing theoretical and practical knowledge.
Table of Contents (22 chapters)
1
Part 1: Learning the TDD Cycle
8
Part 2: Refactoring Tests and Application Code
16
Part 3: Testing SvelteKit Features

Validating data in the form action

Now we’re all set up for errors on the client, but we need the server code to actually do the validation checks. We’ll add two checks: one to check that the name is not empty, and one to check that the date can be parsed into a valid Date object.

Each of these checks needs four unit tests: the first to ensure we break early without adding the birthday; the next to check the 422 error code; then one to check the error message text; and finally, one to check that the original data is passed back. (In Chapter 8, Creating Matchers to Simplify Tests, you’ll see how to build a matcher that will roll up three of these tests into one single test.)

The beforeEach function

This section introduces the beforeEach function, which is used to run setup code before each of the tests within the describe block. It is a useful tool for reducing duplication within your test suites. You can consider it as part of the Arrange phase of your...