QA Automation
This service is deployed exclusively to the test environment and is never deployed to production. All infrastructure targets us-west-2 (test only).
|
QA Automation is the FloatMe test-infrastructure service that creates integration users in specific financial states, drives simulation of collection and payment events, and runs automated BDD-style regression tests using the Cucumber framework.
The system has two main components: a Go API Lambda (qa-api) that orchestrates user creation and event simulation, and a TypeScript/Cucumber test runner that exercises the platform end-to-end and reports results back to Jira via Xray.
What This System Owns
| Domain | Responsibility |
|---|---|
Integration users |
38 predefined test-user states (plus |
Custom users |
Fully configurable user creation via |
Simulation endpoints |
Trigger collection and notification flows (subscription daily/webhook/notifier, float daily/webhook, LOC collections) by injecting SQS messages into the real service queues |
Cucumber tests |
Six BDD test suites (Subscription Collections, Underwriting, LOC, Users & Membership, Floats, Float Collections) that create users, drive simulations, and assert expected state against live service APIs |
Jira/Xray integration |
Feature files are imported from Jira before each run and results are exported back after completion, keeping test management in sync with execution |
Lambda Functions
| Function | Trigger | Purpose |
|---|---|---|
|
API Gateway (IAM SigV4) |
Exposes the QA REST API for user creation, simulation endpoints, event injection ( |
External Dependencies
| Service | Role |
|---|---|
Auth0 |
Creates Auth0 user accounts during integration user setup |
Plaid |
Configures bank account overrides for test users |
User Service |
Creates and retrieves user profiles |
Float Service |
Creates floats and retrieves float state for test users |
Subscription Service |
Creates subscriptions and drives collection workflows |
LOC Service |
Creates Line of Credit loans and triggers loan collections |
Payments Service |
Creates and verifies payment records |
Underwriting Service |
Validates underwriting eligibility for test scenarios |
Insight Service |
Retrieves user insight data for assertions |
Iterable |
Queries marketing event history for test users (mobile + server keys) |
GrowthBook |
Feature flag evaluation during user creation and simulation |
Jira/Xray |
Source of |
DynamoDB (bypass rules + subscriptions) |
Stores per-user bypass rules and subscription records used during simulation |
RDS (PostgreSQL) |
Read access to floats and loans tables in the test environment for assertion queries |
SQS |
Sends messages to subscription and float collection queues to trigger asynchronous processing |
Kinesis |
Injects test events into event streams for diagnostic and integration scenarios |
Documentation
-
Architecture — System context, Lambda internals, data storage, inbound/outbound integrations
-
Infrastructure — Terraform resources, VPC, DynamoDB tables, Secrets Manager, Datadog
-
API Spec — OpenAPI spec overview, code generation workflow
-
API Endpoints — Full endpoint reference with request/response shapes
-
Integration Users — All 38 predefined user states (plus
sub_overdue_<N>dvariants) and what each configures -
Predefined User States — Mapping of state names to Auth0/Plaid/DynamoDB configuration
-
Simulation Flows — How each simulation endpoint works and which SQS queues it targets
-
Cucumber Framework — Test runner setup, World context, step-definition patterns, parallel execution
-
CI/CD — GitHub Actions workflows, scheduled runs, manual dispatch, deploy pipeline
-
External Integrations — Auth0, Plaid, Iterable, GrowthBook, Xray integration details
-
Features — Jira test suite keys, feature file layout, and Cucumber tag strategy