# victorcur/reto-back architecture

> Architecture diagram of the GitHub repository victorcur/reto-back, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/victorcur/reto-back
- Repository: https://github.com/victorcur/reto-back

## Overview

This repository is a Karate/JUnit API test suite for ServeRest’s Users resource, not the service implementation. Its workflow is: the test entry point runs endpoint-specific features, which issue HTTP requests and assert response contracts and behavior. Features needing pre-existing users use reusable data and fixture helpers, including cleanup. The README documents configurable base URLs and CRUD coverage; source excerpts were unavailable, so links show only relationships supported by that documentation and the file tree.

Main entry points: [`src/test/java/com/serverest/UsersTest.java`](https://github.com/victorcur/reto-back/blob/main/src/test/java/com/serverest/UsersTest.java) (Users test suite), [`src/test/resources/features/helpers/user-fixture.feature`](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/helpers/user-fixture.feature) (User fixture), [`src/test/resources/features/users-create.feature`](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-create.feature) (Create users), [`src/test/resources/features/users-get-by-id.feature`](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-get-by-id.feature) (Get user by ID)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_harness["Test harness"]
  node_users_test["Users test suite<br/>[UsersTest.java]"]
  node_config["Karate configuration<br/>[karate-config.js]"]
end

subgraph group_operations["User operations"]
  node_list["List users<br/>[users-list.feature]"]
  node_create["Create users"]
  node_get_by_id["Get user by ID"]
  node_update["Update users"]
  node_delete["Delete users"]
end

subgraph group_helpers["Test helpers"]
  node_fixture["User fixture"]
  node_user_data["Unique test data<br/>[user-data.feature]"]
end

node_runner(("Test runner"))
node_user_service["ServeRest Users API"]

node_runner -->|"runs"| node_users_test
node_users_test -->|"runs features"| node_list
node_users_test -->|"runs features"| node_create
node_users_test -->|"runs features"| node_get_by_id
node_users_test -->|"runs features"| node_update
node_users_test -->|"runs features"| node_delete
node_config -->|"configures base URL"| node_user_service
node_list -->|"sends requests"| node_user_service
node_create -->|"sends requests"| node_user_service
node_get_by_id -->|"sends requests"| node_user_service
node_update -->|"sends requests"| node_user_service
node_delete -->|"sends requests"| node_user_service
node_create -.->|"uses fixture"| node_fixture
node_get_by_id -.->|"uses fixture"| node_fixture
node_update -.->|"uses fixture"| node_fixture
node_delete -.->|"uses fixture"| node_fixture
node_fixture -->|"uses data"| node_user_data
node_fixture -->|"creates and cleans"| node_user_service

click node_users_test "https://github.com/victorcur/reto-back/blob/main/src/test/java/com/serverest/UsersTest.java"
click node_config "https://github.com/victorcur/reto-back/blob/main/src/test/resources/karate-config.js"
click node_list "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-list.feature"
click node_create "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-create.feature"
click node_get_by_id "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-get-by-id.feature"
click node_update "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-update.feature"
click node_delete "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-delete.feature"
click node_fixture "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/helpers/user-fixture.feature"
click node_user_data "https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/helpers/user-data.feature"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_users_test,node_config,node_user_service toneBlue
class node_list,node_create,node_get_by_id,node_update,node_delete toneAmber
class node_fixture,node_user_data toneMint
class node_runner toneIndigo
```

## Components

### Test harness

- [Users test suite](https://github.com/victorcur/reto-back/blob/main/src/test/java/com/serverest/UsersTest.java): `src/test/java/com/serverest/UsersTest.java`
- [Karate configuration](https://github.com/victorcur/reto-back/blob/main/src/test/resources/karate-config.js): `src/test/resources/karate-config.js`

### User operations

- [List users](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-list.feature): `src/test/resources/features/users-list.feature`
- [Create users](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-create.feature): `src/test/resources/features/users-create.feature`
- [Get user by ID](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-get-by-id.feature): `src/test/resources/features/users-get-by-id.feature`
- [Update users](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-update.feature): `src/test/resources/features/users-update.feature`
- [Delete users](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/users-delete.feature): `src/test/resources/features/users-delete.feature`

### Test helpers

- [User fixture](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/helpers/user-fixture.feature): `src/test/resources/features/helpers/user-fixture.feature`
- [Unique test data](https://github.com/victorcur/reto-back/blob/main/src/test/resources/features/helpers/user-data.feature): `src/test/resources/features/helpers/user-data.feature`

### Other components

- **Test runner**
- **ServeRest Users API**

## Connections

- Test runner → Users test suite: runs
- Users test suite → List users: runs features
- Users test suite → Create users: runs features
- Users test suite → Get user by ID: runs features
- Users test suite → Update users: runs features
- Users test suite → Delete users: runs features
- Karate configuration → ServeRest Users API: configures base URL
- List users → ServeRest Users API: sends requests
- Create users → ServeRest Users API: sends requests
- Get user by ID → ServeRest Users API: sends requests
- Update users → ServeRest Users API: sends requests
- Delete users → ServeRest Users API: sends requests
- Create users → User fixture: uses fixture
- Get user by ID → User fixture: uses fixture
- Update users → User fixture: uses fixture
- Delete users → User fixture: uses fixture
- User fixture → Unique test data: uses data
- User fixture → ServeRest Users API: creates and cleans
