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 sub_overdue_<N>d variants) covering simple, float-ready, loan-ready, premium, banned, reconnect, KYC, and many other scenarios — created on demand via POST /qa/integration/user

Custom users

Fully configurable user creation via POST /qa/integration/custom-user — callers specify bank accounts, subscriptions, floats, LOC loans, bypass rules, and balances

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

test-qa-automation-api

API Gateway (IAM SigV4)

Exposes the QA REST API for user creation, simulation endpoints, event injection (/qa/test/event), and Iterable queries; orchestrates calls to all downstream FloatMe services and third-party providers

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 .feature files (imported before each run); destination for test results (exported after each run)

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>d variants) 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