Implement E2E UI tests for the website critical flows
Description
Add E2E tests for the website UI, so that we can able to test critical user flows or actions, that will be required to create good UX experience.
Tasks to complete in this issue
- [ ] Create a setup for the E2E testing inside the website
- [ ] Add E2E tests for the critical flows of the website
- [ ] Add workflow to test E2E tests in each PR
Tech Stack required
Typescript, Node js, Testing, Github Actions
Difficulty
Medium/Hard
Duration of the project
175+ hours
Mentor assigned to this project
@sambhavgupta0705
Contribution guidelines
- We have added this issue under GSoC, hence contributor will be assigned as per the proposal basis. Please avoid asking to assign this issue to yourself.
- The proposal format will be the same as we have specified in the community repo.
Hi, can you please elaborate and explain how I can get started with this issue? What specific critical flows are you referring to?
Hey @sambhavgupta0705 ,
I'm interested in contributing to this E2E testing project for the AsyncAPI website under GSoC 2025.
Could you please provide more details on the critical user flows that need testing? Also, is there any existing setup or preferred framework for E2E tests, or should we define it from scratch?
Looking forward to your guidance on getting started! 🚀
@devilkiller-ag
I’m interested in working on this project for GSoC. Setting up E2E tests to improve the website’s user experience sounds exciting, and I believe it’s a great opportunity to contribute and learn. I’ve gone through the requirements and started drafting my proposal.
I noticed the tech stack includes TypeScript, Node.js, Testing, and GitHub Actions.
I’d love to know if there are any preferred E2E testing tools (like Cypress or Playwright) and details on how the current tech stack is structured to integrate testing effectively.
It would also be helpful if you could share more information about the critical user flows to prioritize and any guidelines to follow.
Looking forward to your guidance and further discussion!
Hey @sambhavgupta0705 I would love to work on this issue, i have previously work with jest, node.js and typescript, looking forward to connect
Hello everyone!! I will add all the requirements and prerequisite for this project by the end of this week,till the time you can start researching about E2E testing and learn how other projects implement it
@sambhavgupta0705 okey
Hey @sambhavgupta0705
I would love to discuss more about this project. I’m particularly interested in understanding which testing tool you think would be the best fit for this setup. From my side, I believe Playwright could be a great option for E2E testing due to its reliability, cross-browser support, and built-in test runner.
Could you please share your thoughts on this? Looking forward to your response.
hello @sambhavgupta0705 .. I would like to work on this issue as a part of GSOC 2025.. I am someone who have been into open source for a while and I have gone through the project requirements and it very well aligns with my tech stack .. I would love to know which E2E testing tool is supposed to be used so that I can start contributing to the project .
Hey Everyone!! You can drop your approach in the comment section only The selection will be proposal based and will be sharing the expectations from the mentee and project by the EOD and what tasks you need to work on
ok @sambhavgupta0705 .. waiting and eager to contribute after you share more about project details
For the project we just expect the mentee to have a good understanding of the project and what needs to be done to achieve the goal which should be reflected in the proposal.
The selection will be based on proposal + communication + contribution to the organisatiion, Please avoid spamming the issues and PRs
Hi @sambhavgupta0705 , I’m interested in contributing to this issue as part of my GSoC proposal. To implement E2E testing for the website, we can approach this by selecting a suitable testing framework that best aligns with the project’s tech stack and requirements. Choosing a Testing Framework For E2E testing, we have several options: Cypress: Easy to set up and provides great debugging tools but runs only in a browser environment, limiting backend interaction and often leading to flaky tests. Selenium: A powerful cross-browser testing tool but requires more setup and is slower compared to modern alternatives. Jest: Primarily a unit testing framework, not ideal for full-fledged E2E testing. Playwright (Recommended): Supports multiple browsers and languages, offers great debugging tools, handles complex user interactions, runs efficiently in headless mode, and allows parallel execution. Why Playwright? Playwright is well-suited for this project because:
- It supports Chromium, Firefox, and WebKit, ensuring cross-browser compatibility.
- It allows testing of multiple user interactions, including authentication, navigation, and form handling.
- It integrates seamlessly with CI/CD pipelines using GitHub Actions.
- Parallel execution in pipelines optimizes time and resource usage.
- It is fully open-source, unlike Cypress, which requires a paid plan for cloud dashboard testing. Playwright allows testing in all environments without restrictions.
- It handles flaky tests better than any other framework.
- The Codegen feature in Playwright makes test writing more efficient by automatically generating scripts. Proposed Implementation Approach
- Proof of Concept (POC)
- Set up Playwright in the project and configure the testing environment.
- Implement a sample test case for a critical flow, such as a key homepage feature.
- Defining Critical User Flows
- Identify key functionalities like authentication, forms, and CRUD operations.
- Write test cases to ensure stability and reliability.
- Expanding Test Coverage
- Extend the POC approach to cover all major user flows.
- Implement comprehensive tests with assertions for expected outcomes.
- CI/CD Integration
- Configure GitHub Actions to run E2E tests on every PR.
- Ensure test reports are generated for debugging failures.
I have already set up and configured Playwright in the repository and implemented tests for a few features on the homepage. This serves as an initial POC to validate the approach. The homepage test includes test for AsyncAPI website's homepage. The tests verify the functionality of the navigation bar elements, the quick search feature, and the "Want to Sponsor Us?" section. Each test ensures that the respective elements are present, clickable, and navigate to the correct URLs. Here’s the link to the added changes: [(https://github.com/asyncapi/website/compare/master...ShrutiChhikara:website:master)]
https://github.com/user-attachments/assets/e4c6dc2b-d19e-4826-84c3-d2ebdcfd4317
Next Steps:
- Expand the coverage to all essential user flows.
- Fine-tune the tests to ensure robustness. Would love to hear your feedback on whether this approach aligns with the project’s vision. Am I heading in the right direction? If this works for you, I will proceed with submitting a formal proposal. Looking forward to your response! Thanks!
Hi all, You can send your proposal to me on slack for first time review and then I can suggest some changes or suggestions and we can discuss it more there I will be active this week and will try to reply asap
Hi Everyone!! Please also add the timeline and your availability in the proposal
It is a medium category issue of 175 hours If you have submitted your proposal with large category then please resumbit it with medium category
@anushkaaaaaaaa will be working on the issue
Is the issue still up I can work on it
This issue has been automatically marked as stale because it has not had recent activity :sleeping:
It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.
There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.
Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.
Thank you for your patience :heart: