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

Research various JS testing frameworks #365

Open
hoch opened this issue May 15, 2024 · 9 comments · May be fixed by #368
Open

Research various JS testing frameworks #365

hoch opened this issue May 15, 2024 · 9 comments · May be fixed by #368
Assignees
Labels
gsoc24 Google Summer of Code 2024

Comments

@hoch
Copy link
Member

hoch commented May 15, 2024

  • Research various JS testing frameworks (e.g. An article from BrowserStack)
  • Prioritize frameworks that offer robust support for asynchronous testing and mocking of Web Audio APIs
@hoch hoch added the gsoc24 Google Summer of Code 2024 label May 15, 2024
@hoch hoch changed the title Research various JS testing frameworks; prioritize frameworks that offer robust support for asynchronous testing and mocking of Web Audio APIs. Research various JS testing frameworks May 15, 2024
@hoch
Copy link
Member Author

hoch commented May 15, 2024

@terryzfeng @Kizjkre I think we can use this issue to record/document the research. What do you think?

@hoch
Copy link
Member Author

hoch commented May 17, 2024

This looks pretty comprehensive, but I haven't checked on how to capture/analysis audio output:
https://playwright.dev/

@hoch
Copy link
Member Author

hoch commented May 20, 2024

Some criteria to consider:

  • Widely known and stable.
  • Less overhead is better; we only need something that can run/measure the Web Audio API.
  • It can run the realtime AudioContext and capture the rendered audio result.
  • It can measure the audio rendering performance.
  • (Stretch) It can run on the latest Chromium automatically via GitHub's CI.

@terryzfeng
Copy link
Collaborator

Base Questions: Which test frameworks are:

  1. Easy to use / documented
  2. Realtime use and Headless (for CI)
  3. Uses actual audio driver

@terryzfeng
Copy link
Collaborator

Here is the research/findings/documentation I have for the Playwright framework. Learning Playwright became quite involved and I needed to write myself a README.

https://docs.google.com/document/d/1e7G9jc4kuVZWvjylTtFE76DzQBsOG6lZSFmV19Kc5cY/edit

@Kizjkre
Copy link
Collaborator

Kizjkre commented May 31, 2024

The two branches in this repo has two prototypes: one using Puppeteer and one using just client-side code.

https://github.com/Kizjkre/puppeteer-webaudio-test

@Kizjkre
Copy link
Collaborator

Kizjkre commented May 31, 2024

--autoplay-policy=no-user-gesture-required is a pretty useful argument to have.

@terryzfeng
Copy link
Collaborator

terryzfeng commented Jun 11, 2024

@Kizjkre I added no-user-gesture-required which worked with Chrome but it doesn't look like Firefox supports it, so the tests weren't compatible.. I couldn't quite figure out the flags

@terryzfeng
Copy link
Collaborator

Linking the PR for Playwright: #368

@terryzfeng terryzfeng linked a pull request Jun 11, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gsoc24 Google Summer of Code 2024
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants