Playwright API test suite for payment/cashier endpoints, with per-environment config (dev/staging/prod) loaded via dotenv. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
104 lines
2.9 KiB
Markdown
104 lines
2.9 KiB
Markdown
# NeoPaaS E2E API Tests
|
|
|
|
End-to-end API test suite for the NeoPaaS platform. Tests all 14 core endpoints in a complete transaction flow (login → purchase → lookups → menu → reset → refund).
|
|
|
|
## Prerequisites
|
|
|
|
- Node.js 18+ installed
|
|
- A NeoPaaS account (merchant credentials) for the environment you want to test
|
|
|
|
## Setup
|
|
|
|
From this folder, install dependencies and the Playwright browser:
|
|
|
|
```bash
|
|
npm install
|
|
npx playwright install chromium
|
|
```
|
|
|
|
## Environments
|
|
|
|
The suite ships with config files for each environment. Open the one you want and update the credentials/terminal as needed:
|
|
|
|
| File | Environment | API URL |
|
|
|----------------|-------------|----------------------------------|
|
|
| `.env` | Default | https://www.babinnovations.com |
|
|
| `.env.dev` | Development | https://devpro.babinnovations.com|
|
|
| `.env.staging` | Staging | https://devpro.babinnovations.com|
|
|
| `.env.prod` | Production | https://www.babinnovations.com |
|
|
|
|
Each file holds the API URL, login credentials, terminal ID, and test amount:
|
|
|
|
```dotenv
|
|
API_BASE_URL=https://www.babinnovations.com
|
|
API_USERNAME=your-email@example.com
|
|
API_PASSWORD=your-password
|
|
TERMINAL_ID=1560127620231203
|
|
TEST_AMOUNT=400
|
|
```
|
|
|
|
> Tip: copy `.env.example` to create your own env file if you need a custom target.
|
|
|
|
## Running the tests
|
|
|
|
Pick the environment you want to run against:
|
|
|
|
```bash
|
|
npm test # uses .env (default)
|
|
npm run test:dev # uses .env.dev
|
|
npm run test:staging # uses .env.staging
|
|
npm run test:prod # uses .env.prod
|
|
```
|
|
|
|
|
|
View the HTML report after a run:
|
|
|
|
|
|
```bash
|
|
npm run report
|
|
```
|
|
|
|
When the test starts, it prints which env file was loaded and the API URL so you always know where it's pointing:
|
|
|
|
```
|
|
🌍 Loaded environment config: .env.dev (API: https://devpro.babinnovations.com)
|
|
```
|
|
|
|
## Endpoints covered
|
|
|
|
1. Login
|
|
2. Purchase
|
|
3. Get Transaction by Latest
|
|
4. Get Transaction by Reference
|
|
5. Get Transaction by ID
|
|
6. Get Transaction by UUID
|
|
7. Get Transactions by Date Range
|
|
8. Get Transaction Timeline by ID
|
|
9. Get Transactions Timeline by Date Range
|
|
10. Enable Menu
|
|
11. Disable Menu
|
|
12. Reconcile by Mada ID
|
|
13. Terminal Reset
|
|
14. Refund
|
|
|
|
## Project structure
|
|
|
|
```
|
|
.
|
|
├── src/
|
|
│ ├── api/client.ts # API client (all endpoint methods)
|
|
│ ├── config/env.ts # Loads the selected .env file
|
|
│ ├── fixtures/api.fixture.ts # Playwright fixture providing apiClient
|
|
│ └── tests/api/
|
|
│ └── all-endpoints.spec.ts # The full 14-endpoint flow
|
|
├── .env / .env.dev / .env.staging / .env.prod
|
|
├── playwright.config.ts
|
|
└── package.json
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
- **Wrong environment?** Check the `🌍 Loaded environment config:` line printed at the start of the run.
|
|
- **Auth fails?** Make sure the username/password in the chosen `.env` file are valid for that environment.
|
|
- **Browser missing?** Run `npx playwright install chromium`.
|