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

Frontend testing #22

Draft
wants to merge 24 commits into
base: main
Choose a base branch
from
Draft

Frontend testing #22

wants to merge 24 commits into from

Conversation

kellpossible
Copy link
Contributor

@kellpossible kellpossible commented Jan 11, 2022

  • Update test specification to support both browser and CLI contributors
  • Allow manual frontend testing to be performed.
  • Refactor test code to move building packages and pulling pre-requisites to a place that makes more sense (rather than with a flag set to true only for the first test in the specification). Necessary because the browser contributor adds even more cruft.
  • Solve some clippy lints to use AtomicBool instead of Arc<Mutex<bool>>>.
  • Improved error messages and logging.
  • Add frontend host component which uses npm start, and which starts at the beginning of the integration test only when required.

A temporary test specification is available showing how to run the browser tests: browser-tests.ron

TODO:

  • Add support for development environment to setup-frontend, and allow it to be configured for an NPM run. See phase1-wasm request coordinator public settings AleoNet/aleo-setup#454 for the changes to aleo-setup. Once that PR is merged, setup-frontend will also need the updated wasm binaries to be committed. Ideally these would be pulled in automatically as part of some build process...
  • Figure out how to prevent the frontend server from attempting to launch the browser automatically when npm start is used, we want to use the headleass browser launched by this integration test instead. However, it is a handy debugging option, allowing one to in a sense replace the computer programmed browser to check/create a workflow.
  • Open setup-frontend in headless browser using thirtyfour, one thread per browser contributor. Perform the necessary user actions required to make a contribution.
  • Detect when contributions have completed on the frontend, and close it and the webdriver gracefully.
  • Launch and manage the firefox geckodriver WebDriver process within the integration test. (Currently it requires a manual launch). I'm thinking about launching a separate webdriver process per contributor, which will require detecting and allocating a free port for webdriver per contributor too.
  • Install, configure and test with CI for headless browser testing

@apruden2008
Copy link
Contributor

@kellpossible can you remind me what the status is here?

@kellpossible
Copy link
Contributor Author

@apruden2008 I added a description to the PR

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.

2 participants