Skip to content

Frontend testing#22

Draft
kellpossible wants to merge 24 commits intomainfrom
frontend-testing
Draft

Frontend testing#22
kellpossible wants to merge 24 commits intomainfrom
frontend-testing

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