juspay / hyperswitch

An open source payments switch written in Rust to make payments fast, reliable and affordable
https://hyperswitch.io/
Apache License 2.0
12k stars 1.27k forks source link

[CYPRESS_FRAMEWORK] Pass `x-request-id` in reports #5911

Open pixincreate opened 2 weeks ago

pixincreate commented 2 weeks ago

Description:

Cypress is the testing framework that Hyperswitch is using to run automated tests. Having good grip on Javascript to work on Cypress is a must.

For every request made from Hyperswitch, x-request-id will be generated. This gives access to the developers to access detailed logs about the exchange (request and response) that includes connector's response as well.

At present, Cypress tests generate report in both html as well as json format. They do provide some info about a test that is run but they lack x-request-id.

[!NOTE] Cypress tests do print the x-request-id in cli logs.

With that said, the task is to inject / introduce x-request-id in reports that are generated.

Getting started:

Go through the README for guidelines on file structure, formatting and instructions on how to set up and run Cypress.

In short:

cd cypress-tests
npm ci

Possible implementation:

  1. Cypress mochawesome reporter is the plugin that is used to generate Cypress reports and is introduced in Cypress configs
  2. You might want to write a custom reporter to accommodate this change by adding a afterHook in Cypress configs that can fetch the x-request-id and pass that into the report through the custom reporter
  3. Code wise, x-request-id is printed into cli_log by the function here

Reference:

Additional info:

Submission Process:

Refer here for Terms and conditions for the contest.

ritik07 commented 2 hours ago

@pixincreate @gorakhnathy7 Would like to contribute to this, could you please add me as an assignee?