Skip to content

Repository files navigation

CommerceOps QA Demo

CommerceOps QA Demo is a portfolio project that demonstrates end-to-end QA engineering on a small e-commerce application.

The project includes a working Angular frontend, a Node.js/PostgreSQL backend, and automated tests across browser, API, database, visual, webhook, and notification surfaces.

It is not a production commerce system. It is a demo app built to show how realistic workflows can be verified with durable backend, database, and visual evidence instead of relying only on UI messages.

Highlights

  • Angular 21 single-page application with customer, support, and operations roles
  • Node.js API backed by PostgreSQL
  • Deterministic seed data and reset flow for repeatable testing
  • Customer flows for browsing, cart updates, coupons, shipping quotes, checkout, and orders
  • Support and operations flows for order lookup, returns, refunds, inventory, fulfillment, and reports
  • Browser-specific cases including Shadow DOM, an iframe payment form, and a canvas-rendered report
  • Automated tests for browser behavior, API contracts, database integrity, visual assertions, webhooks, and notifications
  • GitHub Actions workflows for the main host-runnable test surfaces

Why this project is useful

Many UI tests pass while missing the real source of truth. This project is designed around the opposite idea: each important workflow should be checked against something durable.

Examples:

  • API tests validate business rules directly.
  • Database tests verify persistence, constraints, and reset behavior.
  • Browser tests cover interactions that only exist in the browser.
  • Visual tests inspect canvas output as pixels.
  • Webhook and notification tests verify signed integration behavior.

Failure-proof evidence

The failure-proof/ directory contains evidence that the tests are not just passing by coincidence.

It includes:

  • a per-test failure matrix;
  • sanitized raw failure logs;
  • patch files for realistic regressions used to prove the tests fail for the right reasons.

These files are not part of the running application. They are included as review evidence for the test suite.

Start here:

Tech stack

Area Tools
Frontend Angular 21, TypeScript
Backend Node.js, PostgreSQL
Local services Docker Compose
Browser tests Playwright
API/database tests pytest, OpenAPI validation, psycopg
Visual tests OpenCV-based canvas checks
CI GitHub Actions

Demo accounts

All demo accounts use the password commerce-demo.

Role Email Area
Customer customer@example.com Store, cart, checkout, orders
Support support@example.com Order search, returns, refunds
Operations ops@example.com Inventory, fulfillment, reports

Run locally

Requirements:

  • Node.js compatible with package.json
  • npm
  • Docker with Compose
  • Python 3.11+ for the Python test suites

Install dependencies:

npm install --no-package-lock
python3 -m venv .venv
.venv/bin/pip install -r e2e_test/requirements-test.txt
npx playwright install chromium

Start the app:

npm run db:up
npm run build
DATABASE_URL=postgresql://commerceops:commerceops@127.0.0.1:5432/commerceops npm start

Open:

http://localhost:4173

Run tests

npm run check
npm run test:all

npm run test:all runs the host-runnable API, database, browser, visual, webhook, and notification suites through the local test orchestrator.

Test surface summary

Surface Purpose
Browser Login, role routing, checkout journeys, Shadow DOM, iframe, canvas reachability
API Contract validation and backend business rules
Database Persistence, constraints, reset behavior, API parity
Visual Canvas report regression checks
Webhooks Signature, idempotency, retry, and disabled-default behavior
Notifications Signed receiver and outbound payload checks

Repository layout

Path Purpose
src/ Angular application
server.js Node.js API and static file server
db.js, db/schema.sql PostgreSQL persistence layer
data/seed-state.json Deterministic seed data
e2e_test/ Automated tests and local test doubles
notify/ Optional notification receiver
failure-proof/ Test-integrity evidence

Intended use

This repository is intended as a public QA engineering portfolio project.

It is not intended for real payments, real customer data, or production deployment.

About

CommerceOps QA Demo is a portfolio project that demonstrates end-to-end QA engineering on a small e-commerce application.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages