Book Image

Building Applications with Spring 5 and Vue.js 2

By : James J. Ye
Book Image

Building Applications with Spring 5 and Vue.js 2

By: James J. Ye

Overview of this book

Building Applications with Spring 5 and Vue.js 2, with its practical approach, helps you become a full-stack web developer. As well as knowing how to write frontend and backend code, a developer has to tackle all problems encountered in the application development life cycle – starting from the simple idea of an application, to the UI and technical designs, and all the way to implementation, testing, production deployment, and monitoring. With the help of this book, you'll get to grips with Spring 5 and Vue.js 2 as you learn how to develop a web application. From the initial structuring to full deployment, you’ll be guided at every step of developing a web application from scratch with Vue.js 2 and Spring 5. You’ll learn how to create different components of your application as you progress through each chapter, followed by exploring different tools in these frameworks to expedite your development cycle. By the end of this book, you’ll have gained a complete understanding of the key design patterns and best practices that underpin professional full-stack web development.
Table of Contents (23 chapters)
Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Preface
Index

Validation on the frontend


As mentioned at the beginning of this chapter, we must always validate user input to make sure the data we received is valid. In this section, we will implement validation on the frontend using Vuelidate (https://monterail.github.io/vuelidate), which is a model-based validation library for Vue.js.

First of all, let's install Vuelidate with the following command:

npm install vuelidate --save

Once it is done, let's write the unit test code for data validation.

Test the data validation

The reason we need to test the data validation is to make sure there is validation in place and user input has been properly validated before being sent to the backend. Let's add the following test to RegisterPage.spec.js to verify that, when the value of the email address is invalid, the registrationService.register() method won't be invoked:

...
import Vuelidate from 'vuelidate'
import registrationService from '@/services/registration'
...
localVue.use(Vuelidate)
...
// Mock dependency...