FadySamirSadek Cypress test suite <work in progress> (#1861)
* add TodoMVC tests, configure examples/react

* add run race command to start the server + Cypress, then shut down

* define parallel travic CI jobs

* update react, react-alt and react-backbone

* enable all tests in the spec

* install bin-up in each framework folder

* do not record on dashboard yet

* start recording on dashboard

* record from the root

* add vue

* do not install anything else

* selectors for most ids vs classes

* test more frameworks on travis

* use same version of node 9.3.0

* add all frameworks

* set path

* try caching in separate job

* enable all examples again, because caching works

* replace not.exist with not.be.visible

* rework the routing tests

* only check todo count number

* comments on hidden

* compare label text only

* visible fix

* page loaded only when someone attached event listeners

* filter known issues when making tests

* use setTimeout instead of raf

* fixed local storage check for knockoutjs

* better visible check

* use visible todos, fix enter

* replace clear with combined enter

* disable routing in angular2, use single selector for escape test

* more visible selectors

* better routing test

* enable a lot of tests, because they no longer are flaky

* use start-server-and-test

* fix loading of chapling todomvc

* trying to make chapling work better

* pass CYPRESS_times to control number of times tests run

* observe localStorage.setItem to intercept old calls

* spy on local storage - also means the app has started

* add test:all command that runs through frameworks using Cypress

* color test output

* except ampesand from spy on local storage check

* run series on Circle

* command

* command

* pass --framework or -f

* print counter in the title

* tweaks

* enable typescript-backbone routing

* move from circle v1 to v2

* second workflow

* add more frameworks

* run from CLI main tests using --main flag

* more frameworks

* update emberjs known issues

* update angular-dart issues

* fix serenadejs

* fixed js_of_ocaml

* fix mithril

* fix canjs

* added all compiled to js

* dojo issue

* fix count in dijon app

* no local storage spy for knockoutjs

* fixed scalajs-react

* looked at reagent, hmm

* start labs

* fix for rappidjs

* known issues for kendo

* fix canjs_require

* add more apps to labs workflow

* more labs

* store screenshots as artifacts

* fix exoskeleton

* fix react-backbone

* fix puremvc

* fix extjs_deftjs

* how did extfs work before?

* assert times parameter

* allow --browser parameter

* emberjs known issue

* update flight start check

* known issues for angular2

* persistance in ampersand

* typescript-backbone

* add remaining projects

* dijon known issues

* worked with last few frameworks

* add --problems flag to run just specific list of apps

* js_of_ocaml has really bad localStorage format

* better wait for local storage spy - with retry

* allow spying on setItem for some frameworks with retry

* add blur after editing field and enter

* using blur for some apps after typing

* refactor

* duel should work

* all tests for somajs_require

* fixed a few issues

* print TRAVIS env variables
Latest commit 215af94 Mar 16, 2018


React TodoMVC Example

React is a JavaScript library for creating user interfaces. Its core principles are declarative code, efficiency, and flexibility. Simply specify what your component looks like and React will keep it up-to-date when the underlying data changes.

React - facebook.github.io/react

Learning React

The React getting started documentation is a great way to get started.

Here are some links you may find helpful:

Articles and guides from the community:

Get help from other React users:

If you have other helpful links to share, or find any of the links above no longer work, please let us know.


The app is built with JSX and compiled at runtime for a lighter and more fun code reading experience. As stated in the link, JSX is not mandatory.

To run the app, spin up an HTTP server (e.g. python -m SimpleHTTPServer) and visit http://localhost/.../myexample/.