Giter Club home page Giter Club logo

realworld-e2e-test's Introduction

RealWorld End-to-End Integration Testing

CircleCI

An end-to-end integration test example for a RealWorld React/NodeJS stack using Mocha and Chrome Puppeteer.

Demonstrates spinning up both the frontend (React/Redux) and backend (NodeJS) stacks for the RealWorld Conduit webapp, and then using Mocha to drive a headless Chrome via Puppeteer.

Designed to work with CircleCI.

Screencast

Getting Started

Prerequisites

Docker CE 17+ (for Mongo)
Node 7+ (for Puppeteer)

Installing

Pull MongoDB image and run it

docker pull mongo
docker run -p 27017:27017 mongo

Install dependencies and start the app aka system under test (SUT)

npm install
npm run start

This step will start the backend server at port 3000 and frontend static server at port 4100. If all went well, you can navigate your browser to: http://localhost:4100/

Running the tests

npm test

asciicast

realworld-e2e-test's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

realworld-e2e-test's Issues

An in-range update of puppeteer is breaking the build 🚨

Version 1.6.0 of puppeteer was just published.

Branch Build failing 🚨
Dependency puppeteer
Current Version 1.5.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

puppeteer is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci Your tests failed on CircleCI Details
  • continuous-integration/travis-ci/push The Travis CI build is in progress Details

Release Notes v1.6.0

Big Changes

API Changes

Changed:

Added:

Bug Fixes

  • #1247 - SVG element causes DOM.getBoxModel error
  • #1300 - Tracing: allow adding custom tracing categories
  • #1325 - When would an error "Cannot find context with specified id undefined" happen?
  • #2362 - [Feature] Add page.waitForRequest() and page.waitForResponse()
  • #2438 - Add target.evaluate and target.evaluateHandle
  • #2629 - Method to show if element is displayed
  • #2653 - Can the error message be more specific?
  • #2685 - Page.pdf - Colors rendering
  • #2708 - $$eval call causes error if no elements found
  • #2709 - In mixed-content page page.exposeFunction is stuck indefinitely
  • #2730 - DeviceDescriptors: Chrome userAgent is missing version number
  • #2761 - Web Worker errors are not collected by page.on('pageerror'...
  • #2765 - Getting URLs that differs only in hashes make next responses to be null
  • #2777 - Can't collect coverage of anonymous scripts
  • #2798 - Possible bug in click using visible center
  • #2804 - click does not fire.

Raw Notes

e1a2140 - chore: mark version v1.6.0
66fa0d3 - test: cleanup page.waitForRequest/page.waitForResponse tests (#2880)
726c8dc - feat(page): introduce waitForRequest and waitForResponse methods (#2776)
3ebbf12 - fix(coverage): report anonymous scripts with debugger:// urls (#2875)
254bc80 - chore: cleanup ElementHandle.isIntersectingViewport (#2874)
12bc1e1 - feat(coverage): add an option to collect coverage of anonymous scripts (#2796)
96c558d - feat(elementhandle): introduce elementHandle.isIntersectingViewport() method. (#2673)
4f8d00e - docs(readme): Update README.md (#2863)
e445e1c - chore(ci): disable brew auto-update (#2861)
88362f7 - docs(readme.md): Fix typo (#2858)
9313c83 - docs(readme): update FAQ (#2826)
eb53a8f - docs(api.md): Fix selector description for pages & frames (#2841)
cfc0571 - feat: better timeout stack trace (#2843)
22fa00a - fix: wait for the chromeProcess to exit, not close (#2838)
fb7c4e0 - docs(readme): minor nits (#2827)
5955aff - fix(page.click): teach puppeteer click wrapped links (#2822)
59e7f7e - feat(chromium): roll Chromium to r571375 (#2817)
acb89dd - docs(api.md): add note on page.pdf() color rendering behavior (#2821)
871b204 - refactor: simplify EmulationManager (#2816)
c4acc63 - feat(chromium): roll Chromium to r571040 (#2814)
d6741ec - test: add test that verifies pptr works with SVG nodes (#2805)
f55d005 - fix(page): teach page.click() to click partially offscreen buttons (#2806)
6ca43cf - docs(api.md): clarify docs about waitForNavigation (#2788)
aae73f5 - feat(worker): implement pageerror event from a worker (#2795)
811415b - docs(api.md): fix a typo (#2789)
3b20839 - docs(api.md): update note about page.goto() returned value (#2787)
a460114 - test: fix appveyour flakiness (#2779)
4178b98 - test: add test that breaks subsequent page.goto (#2775)
dcae6bc - feat(chromium): roll Chromium to r568432 (#2769)
ea8ec1e - chore(ci): Configure OSX on Cirrus CI (#2774)
1064aa4 - feat(request): add new error reasons for request.abort() (#2771)
37dbfc2 - test: fix random tests flakiness (#2770)
f197d2e - fix: don't pass a reference to the page into frames (#2766)
b20cde6 - fix(page): migrate exposeFunction from console.debug to Runtime.installBinding #2631
af0bd15 - test: split out ignoreHTTPSErrors tests (#2745)
c430138 - test: drop PDF tests (#2744)
861f070 - feat(chromium): roll Chromium to r567388 (#2743)
73f9c48 - feat: nicer protocol error messages (#2742)
9a650c8 - feat(element-handle): remove throw in case of empty elementHandle (#2740)
38f112f - feat(target): add support for target.page for 'backgroud_page' (#2600)
cd8d750 - fix(devicedescriptors): fix UA in DeviceDescriptors (#2741)
ddfdaf9 - fix(page): fix race condition in WaitTask (#2739)
ed7a26c - feat(tracing): enable high resolution JavaScript sampling (#2702)
eca6610 - docs(api.md): fix keyboard.press note about modifier keys (#2711)
9498b10 - fix(helpers): support thrown strings and numbers in getExceptionMessage (#2715)
93e1289 - test: make tests work on non-English locales (#2736)
1875cb4 - docs(api.md): fix return type docs of ElementHandle.$x (#2723)
d481fd5 - fix(types): type FrameManager in Page.js (#2718)
147f98d - chore: bump version to v1.5.0-post (#2699)

Commits

The new version differs by 49 commits.

  • 3762de7 chore: mark version v1.6.0 (#2882)
  • 66fa0d3 test: cleanup page.waitForRequest/page.waitForResponse tests (#2880)
  • 726c8dc feat(page): introduce waitForRequest and waitForResponse methods (#2776)
  • 3ebbf12 fix(coverage): report anonymous scripts with debugger:// urls (#2875)
  • 254bc80 chore: cleanup ElementHandle.isIntersectingViewport (#2874)
  • 12bc1e1 feat(coverage): add an option to collect coverage of anonymous scripts (#2796)
  • 96c558d feat(elementhandle): introduce elementHandle.isIntersectingViewport() method. (#2673)
  • 4f8d00e docs(readme): Update README.md (#2863)
  • e445e1c chore(ci): disable brew auto-update (#2861)
  • 88362f7 docs(readme.md): Fix typo (#2858)
  • 9313c83 docs(readme): update FAQ (#2826)
  • eb53a8f docs(api.md): Fix selector description for pages & frames (#2841)
  • cfc0571 feat: better timeout stack trace (#2843)
  • 22fa00a fix: wait for the chromeProcess to exit, not close (#2838)
  • fb7c4e0 docs(readme): minor nits (#2827)

There are 49 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Sauce testing is flaky

A couple of observed failures:

https://circleci.com/gh/anishkny/realworld-e2e-test/134

  1) Sauce Labs
       "before all" hook:
     Error: 20 Jul 20:55:53 - Sauce Connect could not establish a connection.
      at handleError (node_modules/sauce-connect-launcher/lib/sauce-connect-launcher.js:410:17)
      at /home/circleci/project/node_modules/sauce-connect-launcher/lib/sauce-connect-launcher.js:517:11
      at /home/circleci/project/node_modules/lodash/lodash.js:4925:15
      at baseForOwn (node_modules/lodash/lodash.js:3010:24)
      ...

https://travis-ci.org/anishkny/realworld-e2e-test/jobs/406424891

  1) Sauce Labs
       "after all" hook:
     TypeError: Cannot read property 'on' of null
      at ChildProcess.child.close (node_modules/sauce-connect-launcher/lib/sauce-connect-launcher.js:566:13)
      at Promise (test/using.saucelabs.js:36:31)
      at new Promise (<anonymous>)
      at Context.after (test/using.saucelabs.js:35:15)

An in-range update of snyk is breaking the build 🚨

Version 1.81.0 of snyk was just published.

Branch Build failing 🚨
Dependency snyk
Current Version 1.80.0
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

snyk is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci Your tests failed on CircleCI Details
  • continuous-integration/travis-ci/push The Travis CI build is in progress Details

Commits

The new version differs by 1 commits.

  • 8db3a39 feat: bump nuget plugin to 1.6.1

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Added the new Node.js version to your .travis.yml

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of puppeteer is breaking the build 🚨

The dependency puppeteer was updated from 1.9.0 to 1.10.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

puppeteer is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • ci/circleci: Your tests failed on CircleCI (Details).
  • continuous-integration/travis-ci/push: The Travis CI build passed (Details).

Release Notes for v1.10.0

Big Changes

API Changes

Added:

Bug Fixes

  • #921 - userDataDir + headless = lost authorization #921
  • #2033 - Feature request: Inspect screen reader output #2033
  • #3303 - docs: Add an example of chrome extension testing on CI
  • #3455 - No errors are thrown on asyncawait check. #3455

Raw Notes

cffcaad - chore: mark version v1.10.0
9ba3261 - feat(accessibility): snapshot the accessibility tree (#3470)
eca3c6b - test(cookies): cookies from headful now work in headless (#3481)
3596c5f - fix(page.evaluate): better function serialization (#3480)
e061007 - docs(api.md): update compatibility table
4110087 - docs(puppeteer-web): a note about running inside extension (#3477)
8e93eab - docs(api.md): add example to override request headers (#3475)
2a88690 - fix(launcher): add flags to improve reliability (#3474)
3dd5c28 - fix(pipe): dispatch "disconnected" event when browser is terminated (#3472)
9800b2c - docs(api.md): Fix missing await in extension example (#3447)
81edbbb - fix(clicking): handle negative area results in computeQuadArea (#3413)
fae441c - docs(troubleshooting): add workarounds for code transpilation (#3399)
cf8c62e - docs(api.md): Fix ElementHandle example (#3401)
d025d1f - fix(csscoverage): don't prematurely disable the CSS domain (#3418)
a4cebd8 - feat(chromium): roll Chromium to r599821 (#3414)
0fd3bfb - test(CSSCoverage): failing test when a stylesheet was recently added (#3400)
a04dedc - docs(troubleshooting.md): run non-headless on CI (#3353)
0bb462c - docs(readme): clarify SPA and SSR (#3363)
6ac66c3 - feat: browser.waitForTarget (#3356)
07febb6 - fix: add missing location property to some key descriptors (#3354)
90d1fe8 - docs(api): fixed grammatical error (it's -> its) #3352
af4209f - chore: bump version to v1.9.0-post (#3351)

Commits

The new version differs by 22 commits.

  • e9d89a2 chore: mark version v1.10.0 (#3482)
  • 9ba3261 feat(accessibility): snapshot the accessibility tree (#3470)
  • eca3c6b test(cookies): cookies from headful now work in headless (#3481)
  • 3596c5f fix(page.evaluate): better function serialization (#3480)
  • e061007 docs(api.md): update compatibility table
  • 4110087 docs(puppeteer-web): a note about running inside extension (#3477)
  • 8e93eab docs(api.md): add example to override request headers (#3475)
  • 2a88690 fix(launcher): add flags to improve reliability (#3474)
  • 3dd5c28 fix(pipe): dispatch "disconnected" event when browser is terminated (#3472)
  • 9800b2c docs(api.md): Fix missing await in extension example (#3447)
  • 81edbbb fix(clicking): handle negative area results in computeQuadArea (#3413)
  • fae441c docs(troubleshooting): add workarounds for code transpilation (#3399)
  • cf8c62e docs(api.md): Fix ElementHandle example (#3401)
  • d025d1f fix(csscoverage): don't prematurely disable the CSS domain (#3418)
  • a4cebd8 feat(chromium): roll Chromium to r599821 (#3414)

There are 22 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of casual is breaking the build 🚨

The dependency casual was updated from 1.5.19 to 1.6.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

casual is a direct dependency of this project, and it is very likely causing it to break. If other packages depend on yours, this update is probably also breaking those in turn.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build is in progress (Details).
  • ci/circleci: Your tests failed on CircleCI (Details).

Commits

The new version differs by 5 commits.

  • 05d7857 Bump version
  • df47c82 Merge pull request #83 from vicary/patch-1
  • 7110b55 Merge pull request #80 from directions4/ja_JP
  • 2f95016 Add 100 common animal names.
  • 43d1e5a Add provider for ja_JP locale

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.