Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add E2E tests using Cypress.io #60

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

avanslaars
Copy link

Cypress.io is an e2e testing tool that will be open sourced soon. I think the Elm community could benefit from such a tool and thought this would be a good place to make that introduction.

I took the liberty of writing some tests for this, just to show how straight-forward writing e2e tests is with Cypress.

Aside from adding some files, these tests don't require any other changes to this project. All the existing code and structure remains the same and the tests can be run with the standalone Cypress GUI. This avoids the need for any node modules or for a server component to be built-in to the project.

Cypress tests are readable and the docs are solid. The tests run very quickly and can be run during development, so once the Elm compiler is happy with the code, you can quickly verify that the full user experience is working as intended.

* `startSeeded` is a custom command that starts the app with seed data.
* Check out the source in ../support/commands.js
*/
cy.startSeeded()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is cy a "Global" that gets "injected" by the Cypress test runner?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup! Cypress exposes the cy and Cypress objects as globals in your tests.

@bahmutov
Copy link

As a representative of the Cypress.io team, I would love to see this merged in. We stand behind our OSS test runner and believe Elm community would benefit greatly from catching errors that can only be found when testing the entire application: misconfiguration, deployment errors, missing libraries, etc.

Especially since @rtfeldman got a Cypress 👕... there are no blockers 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants