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/notifier by injecting SQS messages into the real service queues, LOC collections by invoking the LOC Service Lambda, and float daily by running the Float Service’s collection jobs synchronously through its QA job runner |
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 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 what it targets (SQS queue, Lambda, Kinesis stream, or a service’s QA job runner)
-
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