Test Cases - Virtual Human YAML GUI (MVP)
Unit Test Cases (Backend)
| ID | Preconditions | Steps | Expected Result |
|---|---|---|---|
| U1 | TopicNameBuilder available | Generate topic name with and without vhId | Topic name matches defined naming convention |
| U2 | YAML validator available | Validate YAML missing vhId or personality fields | Validation fails with clear error message |
| U3 | Default values defined | Validate YAML with optional fields omitted | Defaults are applied correctly |
| U4 | Manifest generator available | Generate Kubernetes manifests from YAML | Namespace contains correct vhId |
| U5 | Version history exists | Select previous YAML version for rollback | Correct previous version is selected |
Integration Test Cases (Backend + Kafka/K8s)
| ID | Preconditions | Steps | Expected Result |
|---|---|---|---|
| I1 | Kafka reachable, no topics exist | Deploy VH | Required topics are created |
| I2 | Topics already exist | Deploy VH | Topics reused and warning returned |
| I3 | Kubernetes reachable | Deploy VH with vhId vh123 | Namespace vh-vh123 is created |
| I4 | Valid YAML available | Deploy VH | All expected Kubernetes resources are created |
| I5 | VH already deployed | Deploy same YAML again | No duplicate or broken resources |
| I6 | VH deployed | Teardown VH | Namespace and topics are removed |
Component Test Cases (Frontend)
| ID | Preconditions | Steps | Expected Result |
|---|---|---|---|
| C1 | GUI running | Update form field | YAML editor updates |
| C2 | GUI running | Edit YAML directly | Form updates |
| C3 | Invalid YAML entered | Trigger validation | Clear actionable errors shown |
| C4 | YAML invalid | Attempt deploy | Deploy button disabled |
| C5 | Version history exists | Trigger restore | Correct API call is made |
End-to-End Test Cases
| ID | Preconditions | Steps | Expected Result |
|---|---|---|---|
| E1 | Template exists, Local Kubernetes cluster (Docker Desktop) | Create VH and deploy | Pods are running and ready |
| E2 | Kafka and K8s reachable | Deploy two VHs | No namespace or topic interference |
| E3 | VH deployed | Edit YAML, deploy, rollback | Previous config restored |
| E4 | VH deployed | Teardown VH | No leftover resources |