Book Image

Vue.js 2 Cookbook

By : Andrea Passaglia
Book Image

Vue.js 2 Cookbook

By: Andrea Passaglia

Overview of this book

Vue.js is an open source JavaScript library for building modern, interactive web applications. With a rapidly growing community and a strong ecosystem, Vue.js makes developing complex single page applications a breeze. Its component-based approach, intuitive API, blazing fast core, and compact size make Vue.js a great solution to craft your next front-end application. From basic to advanced recipes, this book arms you with practical solutions to common tasks when building an application using Vue. We start off by exploring the fundamentals of Vue.js: its reactivity system, data-binding syntax, and component-based architecture through practical examples. After that, we delve into integrating Webpack and Babel to enhance your development workflow using single file components. Finally, we take an in-depth look at Vuex for state management and Vue Router to route in your single page applications, and integrate a variety of technologies ranging from Node.js to Electron, and Socket.io to Firebase and HorizonDB. This book will provide you with the best practices as determined by the Vue.js community.
Table of Contents (19 chapters)
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Dedication
Preface

Testing your store


As you know from Chapter 7Unit Testing and End-To-End Testing, testing is the most important part of professional software. As the store often defines the business logic of your application, testing it may be vital for your application. In this recipe, you will write tests for a Vuex store.

Getting ready

This recipe requires knowledge from Chapter 7Unit Testing and End-To-End Testing and familiarity with Vuex; you can get it from the earlier recipes of this chapter.

How to do it...

First, I'll define some features that our store must implement; then you will write tests that prove that the features are present and working.

Software requirements

Our store consists of items in a to-do list, like the following:

state: {
  todo: [
    { id: 43, text: 'Buy iPhone', done: false },
    ...
  ],
  archived: [
    { id: 2, text: 'Buy gramophone', done: true },
    ...
  ]
}

We have two requirements:

  • We must have an MARK_ITEM_AS_DONE mutation that changes the done field from false to...