git clone https://github.com/bubafinder/vue-todomvc.git
npm i
npm run start
http://localhost:3000
npm install cypress -D
{
"scripts": {
"cy:open": "cypress open",
"cy:run": "cypress run"
}
}
module.exports = defineConfig {
e2e: {
baseUrl: ‘http://localhost:3000’
}
}
npm run dev
percy.io/login
Username: [email protected]
Pass: on paper
npm install -D @percy/cli @percy/cypress
export PERCY_TOKEN=web_a7cebe60b9911dcc6be846b785cb2759c407f87550eb77e8d61c45bfe197fa7d
import '@percy/cypress';
{
"scripts": {
"test:visual": "start-server-and-test start http://localhost:3000 cy:visual",
"cy:visual": "percy exec -- cypress run --spec 'cypress/e2e/visual.cy.js'"
}
}
"cy:run": "cypress run --spec 'cypress/e2e/!(visual.cy.js)**'"
- Install VS Code - https://code.visualstudio.com/download
- Install Node.JS - https://nodejs.org/en/download
- Install Git - https://git-scm.com/download/mac
- Install VS Code - https://code.visualstudio.com/download
- Install Node.JS - https://nodejs.org/en/download
- Install Git - https://git-scm.com/download/win
Simple TodoMVC with Vue.js and Vuex data store.
Based on this Vuex tutorial and the basic official TodoMVC vue.js example
Read my step by step tutorial explaining the code and this thorough blogpost how this application is tested using Cypress.
Clone this repository then
npm install
npm start
Open localhost:3000
in the browser.
All tests are implemented using Cypress.io
See the spec new-item-spec.js that shows how to use cy-spok plugin to confirm the request object. Watch the introduction to cy-spok plugin video here.
The app
global variable exposes the Vue instance.
To see "plain" values from the store (without all Observer
additions)
app.$store.getters.todos
.map(JSON.stringify) // strips utility fields
.map(JSON.parse) // back to plain objects
.forEach(t => console.log(t)) // prints each object
Or print them as a table
console.table(app.$store.getters.todos.map(JSON.stringify).map(JSON.parse))
Author: Gleb Bahmutov <[email protected]> © 2021
License: MIT - do anything with the code, but don't blame me if it does not work.
Support: if you find any problems with this module, email / tweet / open issue on Github