iodide-project / iodide-project/iodide

Add some basic integration tests to verify that the notebook and server views are usable

Open
#1,362 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
1.5k
Forks
145
PR merge metrics
No merged PRs in 30d

Description

We currently have some server-side user tests which verify that the server views return valid html with the expected json/script content, but no real verification that the end result is usable by the browser. Today that resulted in a seemingly-innocuous code mirror change (#1341) breaking our deployment.

We should add some basic selenium tests that verify things are still working end-to-end from the point of view of a Firefox and Chrome client. To start with, I would recommend minimal tests for all the server side views, including the notebook. Even just testing that the basic divs that you'd expect are in place would go a long way towards giving us confidence that (e.g.) a renovate PR didn't break something important.

We could use the treeherder selenium tests as a model for this (the original set just did as above, though it seems like they have since been expanded/extended a fair bit):

https://github.com/mozilla/treeherder/blob/45b2493d06e279a0ed0add0e04bfbb9d71ca6510/.travis.yml#L55
https://github.com/mozilla/treeherder/tree/45b2493d06e279a0ed0add0e04bfbb9d71ca6510/tests/selenium

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing server-side user tests, then use the referenced treeherder .travis.yml and tests/selenium examples as a model. Done means adding basic Selenium coverage for the server-side views, including the notebook, and verifying expected elements in both Firefox and Chrome.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.