Book Image

Vue.js 2 and Bootstrap 4 Web Development

By : Olga Filipova
Book Image

Vue.js 2 and Bootstrap 4 Web Development

By: Olga Filipova

Overview of this book

In this book, we will build a full stack web application right from scratch up to its deployment. We will start by building a small introduction application and then proceed to the creation of a fully functional, dynamic responsive web application called ProFitOro. In this application, we will build a Pomodoro timer combined with office workouts. Besides the Pomodoro timer and ProFitOro workouts will enable authentication and collaborative content management. We will explore topics such as Vue reactive data binding, reusable components, routing, and Vuex store along with its state, actions, mutations, and getters. We will create Vue applications using both webpack and Nuxt.js templates while exploring cool hot Nuxt.js features such as code splitting and server-side rendering. We will use Jest to test this application, and we will even revive some trigonometry from our secondary school! While developing the app, you will go through the new grid system of Bootstrap 4 along with Vue.js’ directives. We will connect Vuex store to the Firebase real-time database, data storage, and authentication APIs and use this data later inside the application’s reactive components. Finally, we will quickly deploy our application using the Firebase hosting mechanism.
Table of Contents (12 chapters)
11
Index

Getting started with Jest


Let's start by testing a small sum function and check that it correctly sums two numbers.

The first step would be, of course, to install Jest:

npm install jest

Create a directory test and add a file called sum.js with the following content:

// test/sum.js
export default function sum (a, b) {
  return a + b
}

Now add a test spec file for this function:

// sum.spec.js
import sum from './sum'

describe('sum', () => {
  it('create sum of 2 numbers', () => {
    expect(sum(15, 8)).toBe(23)
  })
})

We need a command to run tests. Add an entry "test" to the package.json file that will call a command jest:

// package.json
"scripts": {
  //...
  "test": "jest"
}

Now if you run npm test, you will see some errors:

Errors in the test output with when we run tests with Jest

This happens because our Jest is not aware we are using ES6! So, we need to add the babel-jest dependency:

npm install babel-jest --save-dev

After babel-jest is installed, we have to add a .babelrc file with...