Skip to content

Latest commit

 

History

History
92 lines (61 loc) · 3.02 KB

README.md

File metadata and controls

92 lines (61 loc) · 3.02 KB

Meteor and Wallaby sample app

  • under development. *

This app represents just one preferred tech stack, with a heavy emphasis on testing. It exists for a few reasons:

  1. Demonstrate TDD and BDD with Meteor
  • Building Meteor in a TDD and BDD style has become much more feasible with Meteor's recent updates.
  1. Kickstart professional grade apps
  • Useful boilerplates allow you to spin up a simple app that's geared for development and production. This is one such attempt.
  1. Learn how to build using the various technologies (Meteor, React, Mocha, etc...)
  • Just picking the stack you like is challenging. But then you have to learn how to use it.

Getting started:

  1. Clone this repo
  2. npm install
  3. Install Wallaby.js into your editor
  4. Select a wallaby config file: either wallaby_client.js or wallaby_server.js
  5. Start Wallaby
  6. npm run chimp:watch

Stars of the show:

  • Meteor

    • Recently implemented native npm support in version 1.3
    • import dependencies means unit testing like other node.js apps
    • this app does not support the recently added meteor test
  • Wallaby.js

    • instant results, as in, test results appear immediately in your editor as you type
  • Chimp

    • Acceptance testing tool
    • Runs cucumber tests against an actual browser
    • uses webdriver.io
  • React

    • for views

Supporting libraries include:

  • redux

    • manages state in a single store
    • dispatch actions and reduce their effects into state changes
  • react-router

    • react's most popular routing solution
  • react-komposer

    • for reactively adding meteor collection data to a component

Testing libraries:

  • mocha

    • testing framework
  • chai

    • assertion library (
    • expect(foo()).to.equal('bar'))
  • cucumber

    • Behavior driven design
    • Specs in plain english
  • testdouble.js

    • alternative to sinon. Easy mocking of imported node modules and meteor packages.
  • enzyme

    • renders and tests react components
    • abstracts the complicated React Test Utils library

Wallaby specific dependencies:

  • babel

    • compiles es2015 & .jsx
  • wallaby-webpack

    • integrates webpack into wallaby to build client side code
    • client side code runs in phantomjs by default

UI Doodads

  • react-s-alert
    • flash notifications to the user with a simple api
    • see imports/ui/layouts/app.js for the main component