SlideShare a Scribd company logo
1 of 13
How we do test apps
HotelQuickly Approach
● Git flow
● Pull Request
● Code Quality Tool
● Unit tests
● Integration tests
● Continuous integration
Git flow
The main branches (infinite lifetime):
● master (production-ready state)
● develop (the latest delivered development
changes for the next release)
Supporting branches:
● feature branches
● release branches
● hotfix branches
Sample App Model
Actions:
● find offers
● book hotel
Initialize Application
Web framework expressjs
● npm init
● npm install express … --save-dev
https://github.com/HotelQuickly/nodejs-meetup
git checkout step1
Find offers
Modules
● mysql2 mysql driver (fast)
● knex query builder
git checkout step2
Time to Docker
Docker allows you to package an application with all of its dependencies into a
standardized unit for software development ©
Docker
● Dockerfile
● Build image
● Publish image
● Start containergit checkout step3
Modules
● mochajs test runner
● shouldjs assertion library
● supertest
● sql-fixtures
● chancejs minimalist generator of random
Integration tests
git checkout step4
Note: don’t install mocha globally
Code Quality
● eslint
● HotelQuickly config
git checkout step5
Book hotel
NOTE: custom errors in node.js
git checkout step6
Modules
● sinonjs Spies, Stubs and Mocks
● proxyquire
Unit tests
git checkout step7
git checkout step8
Integration tests
Continuous integration
● Docker compose
● Travis
git checkout step9
Questions
Thanks for coming!

More Related Content

What's hot

HTML5 Jump Start
HTML5 Jump StartHTML5 Jump Start
HTML5 Jump Start
Haim Michael
 

What's hot (20)

A guide to getting started with WebdriverIO
A guide to getting started with WebdriverIOA guide to getting started with WebdriverIO
A guide to getting started with WebdriverIO
 
Node.js Jump Start
Node.js Jump StartNode.js Jump Start
Node.js Jump Start
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
Test your user interface using BDD (Swedish)
Test your user interface using BDD (Swedish)Test your user interface using BDD (Swedish)
Test your user interface using BDD (Swedish)
 
Tech Talk Tokyo #2 tetsuya matsuzawa
Tech Talk Tokyo #2 tetsuya matsuzawaTech Talk Tokyo #2 tetsuya matsuzawa
Tech Talk Tokyo #2 tetsuya matsuzawa
 
Difference between-angular js-nodejs
Difference between-angular js-nodejsDifference between-angular js-nodejs
Difference between-angular js-nodejs
 
The state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobsThe state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobs
 
Node.js
Node.jsNode.js
Node.js
 
Android Made Simple
Android Made SimpleAndroid Made Simple
Android Made Simple
 
Frameworks in JavaScript
Frameworks in JavaScriptFrameworks in JavaScript
Frameworks in JavaScript
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
 
Building at a glance
Building at a glanceBuilding at a glance
Building at a glance
 
Yet Another Continuous Integration Story
Yet Another Continuous Integration StoryYet Another Continuous Integration Story
Yet Another Continuous Integration Story
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App Engine
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
GDG Passo fundo - Apps with unit tests (Karma + jasmine + angular)
 
Mvvm is like born fraction
Mvvm is like born fractionMvvm is like born fraction
Mvvm is like born fraction
 
DevOps Toolchain v1.0
DevOps Toolchain v1.0DevOps Toolchain v1.0
DevOps Toolchain v1.0
 
Meetup React Sanca - 29/11/18 - React Testing
Meetup React Sanca - 29/11/18 - React TestingMeetup React Sanca - 29/11/18 - React Testing
Meetup React Sanca - 29/11/18 - React Testing
 
HTML5 Jump Start
HTML5 Jump StartHTML5 Jump Start
HTML5 Jump Start
 

Viewers also liked

Subscribed 2011 Keynote -- The Death of ERP
Subscribed 2011 Keynote -- The Death of ERPSubscribed 2011 Keynote -- The Death of ERP
Subscribed 2011 Keynote -- The Death of ERP
Tien Tzuo
 
Aspekty kredibility sociálnych médií
Aspekty kredibility sociálnych médiíAspekty kredibility sociálnych médií
Aspekty kredibility sociálnych médií
Katarina Buzova
 
The Only 3 Metrics That Matter in the Subscription Economy
The Only 3 Metrics That Matter in the Subscription EconomyThe Only 3 Metrics That Matter in the Subscription Economy
The Only 3 Metrics That Matter in the Subscription Economy
Zuora, Inc.
 
Donor Data: The Key to Retention with Fundraising Success and CDS Global
Donor Data: The Key to Retention with Fundraising Success and CDS GlobalDonor Data: The Key to Retention with Fundraising Success and CDS Global
Donor Data: The Key to Retention with Fundraising Success and CDS Global
CDS Global, Inc.
 
Success In The Subscription Economy - Brian Bell, CMO of Zuora
Success In The Subscription Economy -  Brian Bell, CMO of ZuoraSuccess In The Subscription Economy -  Brian Bell, CMO of Zuora
Success In The Subscription Economy - Brian Bell, CMO of Zuora
Brent Leary
 

Viewers also liked (20)

Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
Subscription Economy: How to shift mindset in 2017 and adapt to changing cons...
 
Harnessing the Power of the Subscription Economy: Lessons from Digital Media'...
Harnessing the Power of the Subscription Economy: Lessons from Digital Media'...Harnessing the Power of the Subscription Economy: Lessons from Digital Media'...
Harnessing the Power of the Subscription Economy: Lessons from Digital Media'...
 
The Subscription Economy Operating Plan
The Subscription Economy Operating PlanThe Subscription Economy Operating Plan
The Subscription Economy Operating Plan
 
Sydney Subscribed 2016: Metrics that Matter - An Operational Framework for Ru...
Sydney Subscribed 2016: Metrics that Matter - An Operational Framework for Ru...Sydney Subscribed 2016: Metrics that Matter - An Operational Framework for Ru...
Sydney Subscribed 2016: Metrics that Matter - An Operational Framework for Ru...
 
Sydney Subscribed 2016: Monetising Subscription Services
Sydney Subscribed 2016: Monetising Subscription ServicesSydney Subscribed 2016: Monetising Subscription Services
Sydney Subscribed 2016: Monetising Subscription Services
 
Driving Success in the Subscription Economy
Driving Success in the Subscription EconomyDriving Success in the Subscription Economy
Driving Success in the Subscription Economy
 
Lessons Learned When Monetizing Subscription Services
Lessons Learned When Monetizing Subscription ServicesLessons Learned When Monetizing Subscription Services
Lessons Learned When Monetizing Subscription Services
 
Subscribed 2011 Keynote -- The Death of ERP
Subscribed 2011 Keynote -- The Death of ERPSubscribed 2011 Keynote -- The Death of ERP
Subscribed 2011 Keynote -- The Death of ERP
 
Seven Sins of Subscription Billing
Seven Sins of Subscription BillingSeven Sins of Subscription Billing
Seven Sins of Subscription Billing
 
Support Me! Driving Customer Satisfaction in the Subscription Economy (Subscr...
Support Me! Driving Customer Satisfaction in the Subscription Economy (Subscr...Support Me! Driving Customer Satisfaction in the Subscription Economy (Subscr...
Support Me! Driving Customer Satisfaction in the Subscription Economy (Subscr...
 
ChannelNext Central 2016 - Guide to Building Your Business with VoIP
ChannelNext Central 2016 - Guide to Building Your Business with VoIPChannelNext Central 2016 - Guide to Building Your Business with VoIP
ChannelNext Central 2016 - Guide to Building Your Business with VoIP
 
Aspekty kredibility sociálnych médií
Aspekty kredibility sociálnych médiíAspekty kredibility sociálnych médií
Aspekty kredibility sociálnych médií
 
2016 Subscription Economy @Meet Magento Ro
2016 Subscription Economy @Meet Magento Ro2016 Subscription Economy @Meet Magento Ro
2016 Subscription Economy @Meet Magento Ro
 
ProductCamp Ottawa 2015 - PM in a Subscription Economy: Introducing Customer ...
ProductCamp Ottawa 2015 - PM in a Subscription Economy: Introducing Customer ...ProductCamp Ottawa 2015 - PM in a Subscription Economy: Introducing Customer ...
ProductCamp Ottawa 2015 - PM in a Subscription Economy: Introducing Customer ...
 
Subscribed 2013 Sydney Keynote
Subscribed 2013 Sydney Keynote Subscribed 2013 Sydney Keynote
Subscribed 2013 Sydney Keynote
 
Driving a Customer Success Culture in Your Enterprise (Subscribed13)
Driving a Customer Success Culture in Your Enterprise (Subscribed13)Driving a Customer Success Culture in Your Enterprise (Subscribed13)
Driving a Customer Success Culture in Your Enterprise (Subscribed13)
 
The Only 3 Metrics That Matter in the Subscription Economy
The Only 3 Metrics That Matter in the Subscription EconomyThe Only 3 Metrics That Matter in the Subscription Economy
The Only 3 Metrics That Matter in the Subscription Economy
 
Donor Data: The Key to Retention with Fundraising Success and CDS Global
Donor Data: The Key to Retention with Fundraising Success and CDS GlobalDonor Data: The Key to Retention with Fundraising Success and CDS Global
Donor Data: The Key to Retention with Fundraising Success and CDS Global
 
Success In The Subscription Economy - Brian Bell, CMO of Zuora
Success In The Subscription Economy -  Brian Bell, CMO of ZuoraSuccess In The Subscription Economy -  Brian Bell, CMO of Zuora
Success In The Subscription Economy - Brian Bell, CMO of Zuora
 
Measuring the Subscription Economy
Measuring the Subscription EconomyMeasuring the Subscription Economy
Measuring the Subscription Economy
 

Similar to How do we test nodejs apps?

Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
Web technologies for desktop development
Web technologies for desktop developmentWeb technologies for desktop development
Web technologies for desktop development
Darko Kukovec
 

Similar to How do we test nodejs apps? (20)

Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous Deployment
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentation
 
Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud Continuous delivery of Windows micro services in the cloud
Continuous delivery of Windows micro services in the cloud
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
Continuous integration in games development
Continuous integration in games developmentContinuous integration in games development
Continuous integration in games development
 
JenkinsCI
JenkinsCIJenkinsCI
JenkinsCI
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
Advanced Code Flow, Notes From the Field
Advanced Code Flow, Notes From the FieldAdvanced Code Flow, Notes From the Field
Advanced Code Flow, Notes From the Field
 
Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologies
 
Web technologies for desktop development
Web technologies for desktop developmentWeb technologies for desktop development
Web technologies for desktop development
 
Go Pro, Inc. Case Study: Dive into the details of our node.js applications
Go Pro, Inc. Case Study: Dive into the details of our node.js applicationsGo Pro, Inc. Case Study: Dive into the details of our node.js applications
Go Pro, Inc. Case Study: Dive into the details of our node.js applications
 
Continuous testing
Continuous testingContinuous testing
Continuous testing
 
Microservices Development Process at Predix.io
Microservices Development Process at Predix.ioMicroservices Development Process at Predix.io
Microservices Development Process at Predix.io
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
Introduction to Jenkins X
Introduction to Jenkins XIntroduction to Jenkins X
Introduction to Jenkins X
 

More from Michal Juhas

More from Michal Juhas (12)

Tech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet PreviewTech Mind Maps - Booklet Preview
Tech Mind Maps - Booklet Preview
 
IT Recruiter's Mind Maps - Booklet Preview
IT Recruiter's Mind Maps - Booklet PreviewIT Recruiter's Mind Maps - Booklet Preview
IT Recruiter's Mind Maps - Booklet Preview
 
Three Secret Ingredients To Recruiting Software Developers
Three Secret Ingredients To Recruiting Software DevelopersThree Secret Ingredients To Recruiting Software Developers
Three Secret Ingredients To Recruiting Software Developers
 
What i wish i knew in my 20's
What i wish i knew in my 20'sWhat i wish i knew in my 20's
What i wish i knew in my 20's
 
Adaptive Upskill As The Future Of The Workforce
Adaptive Upskill As The Future Of The WorkforceAdaptive Upskill As The Future Of The Workforce
Adaptive Upskill As The Future Of The Workforce
 
Introducing PlanetQuest on the TechsSmmit 2018
Introducing PlanetQuest on the TechsSmmit 2018Introducing PlanetQuest on the TechsSmmit 2018
Introducing PlanetQuest on the TechsSmmit 2018
 
Metasearch Outlook 2017
Metasearch Outlook 2017Metasearch Outlook 2017
Metasearch Outlook 2017
 
Becoming Data Driven
Becoming Data DrivenBecoming Data Driven
Becoming Data Driven
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
PHP Frameworks, or how I learnt to stop worrying and love the code
PHP Frameworks, or how I learnt to stop worrying and love the codePHP Frameworks, or how I learnt to stop worrying and love the code
PHP Frameworks, or how I learnt to stop worrying and love the code
 
Building Scalable Micro-services with Nodejs
Building Scalable Micro-services with NodejsBuilding Scalable Micro-services with Nodejs
Building Scalable Micro-services with Nodejs
 
HotelQuickly Product & Engineering
HotelQuickly Product & EngineeringHotelQuickly Product & Engineering
HotelQuickly Product & Engineering
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

How do we test nodejs apps?

Editor's Notes

  1. all we know that quality is very important
  2. Development model Feature branches (or sometimes called topic branches) are used to develop new features for the upcoming or a distant future release. Release branches support preparation of a new production release. Hotfix branches are very much like release branches in that they are also meant to prepare for a new production release, albeit unplanned. http://nvie.com/posts/a-successful-git-branching-model/