Skip to content

Commit

Permalink
docs(postman): Rewrite postman documentation to help devs develop tes…
Browse files Browse the repository at this point in the history
…ts for their features (#2613)
  • Loading branch information
pixincreate authored Oct 17, 2023
1 parent 4859b7d commit 1548ee6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 24 deletions.
2 changes: 2 additions & 0 deletions crates/test_utils/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

The heart of `newman`(with directory support) and `UI-tests`

> If you're developing a collection and you want to learn more about it, click [_**here**_](/README.md)
## Newman

- Make sure you that you _**do not**_ have the newman (from the Postman team) installed but rather the `newman` fork with directory support
Expand Down
49 changes: 25 additions & 24 deletions postman/README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
# Postman Collection

You can find the latest Postman collection [here][postman-collection].
For getting started quickly, you can also
[fork the Postman collection][postman-collection-fork] under your workspace.
This directory contains the Postman collection for all Hyperswitch supported connectors and this documentation talks about how to build the collection.

## Auto-Generating the Postman Collection
## Development of collections

The [Postman collection][postman-collection] is generated using
[`portman`][portman] tool from the [OpenAPI specification][openapi-spec].
If you'd like to generate the collection from the OpenAPI specification, you can
follow the below steps:
### Prerequisites

1. Install `portman`, refer to the instructions on
[the repository][portman-repository]:
- [Postman](https://www.postman.com/downloads/)
- Newman CLI fork from npm: npm install -g 'https://github.com/knutties/newman.git#feature/newman-dir'

```shell
npm install -g @apideck/portman
```
### Steps to build the collection

2. From the root of the project directory, run the following command to generate
the Postman collection.
- `stripe.postman_collection.json` is the most up-to-date collection that consists of all the features that Hyperswitch supports
- It is recommended that you use the `stripe.postman_collection.json` as the base collection to build the collection for other connectors
- If you developed a new feature, make sure you add them to the `stripe.postman_collection.json` given that it is a core feature. If it is collection specific, add it to the respective collection

```shell
portman --cliOptionsFile postman/portman-cli.json
```
---

**NOTE:** Please verify Postman collection variables before trying out the APIs.
- The collection consists of many directories and each directory consists of a set of requests. Each directory is a feature and each request is a test case
- The directory name should be the name of the feature and the request name should be the name of the test case
- If the feature that you add is a flow test case, make sure you add the test case to the `Flow Testcases` directory. If you did a refactor that handles errors say, expiry date of a card, make sure you add the test case to the `Variation Cases` directory prefixed by `Scenario-<number>` where `<number>` is the number of the scenario
- If the feature that you add is a core feature, make sure you add the test case to the `Happy Cases` directory where only the happy cases are tested.

[postman-collection]: https://www.postman.com/hyperswitch/workspace/hyperswitch/collection/25176183-e36f8e3d-078c-4067-a273-f456b6b724ed
[postman-collection-fork]: https://www.postman.com/hyperswitch/workspace/hyperswitch/collection/25176183-e36f8e3d-078c-4067-a273-f456b6b724ed/fork
[portman]: https://www.npmjs.com/package/@apideck/portman
[openapi-spec]: /openapi/open_api_spec.yaml
[portman-repository]: https://github.com/apideck-libraries/portman
---

- Make sure that you update the `tests` section where the necessary `javascript` code has to written/updated to test the feature (assertion checks where you verify the results obtained with the expected outcome)
- If certain `tests` need to be run at the time of making a request, make sure you add them to the `Pre-request Script` section of the request

---

- After all the development is done, make sure you right click and run the collection in respective environments to make sure that the collection runs successfully
- Export the collection as `v2.1` and save it `postman/collection-json` directory
- Export the postman-collection to its directory structure by using the command `newman dir-export /path/to/collection.json` and move the folder to `postman/collection-dir` (for more info, refer to [Newman-Fork](https://github.com/juspay/hyperswitch/tree/main/crates/test_utils#newman))
- You can run the dir postman collection from newman using `rustman` by referring [here](https://github.com/juspay/hyperswitch/tree/main/crates/test_utils#running-tests)

0 comments on commit 1548ee6

Please sign in to comment.