Back to Proof of Work
API Automation

RESTful Booker API Automation

REST API Testing Framework with Playwright & TypeScript

Professional API automation project demonstrating REST API testing expertise, TypeScript architecture, comprehensive test coverage, and CI/CD integration.

Test Results ALL PASSING
47 Automated Tests
Latest Run: 100% Passing | 0 Failed | 0 Flaky
Playwright Test Framework
TypeScript Language
5 HTTP Methods
GitHub CI/CD

Project Context

This is an independent, public QA automation project built to demonstrate professional API testing expertise. It provides comprehensive testing of the RESTful Booker API—a public booking/reservation system designed for API testing practice.

The project prioritizes code quality, maintainability, and clarity. It demonstrates how to design reusable API clients, organize test suites effectively, and structure meaningful test coverage rather than simply increasing test count.

API Testing Workflow

The test suite validates a complete API lifecycle:

1
Authenticate
2
Create
3
Retrieve
4
Update
5
Patch
6
Delete

This flow validates state management, data persistence, and the correctness of multi-step API interactions. Each step verifies response structure, data integrity, and error handling.

Test Coverage

47 tests organized across 9 suites covering distinct API concerns:

Health Check
1
Authentication
5
Create
7
Retrieve
6
Update (Full)
6
Update (Partial)
5
Delete
6
Negative Testing
8
Workflows
3

HTTP Methods Coverage

The framework tests all standard REST operations with proper HTTP semantics:

GET
Retrieve booking data
POST
Create new bookings
PUT
Replace booking entirely
PATCH
Partial booking updates
DELETE
Remove booking

Testing Strategy

Status Code Validation

Verify correct HTTP responses (200, 201, 400, 401, 404) for each operation

Response Structure

Validate JSON payload structure, data types, and required fields

Data Integrity

Confirm sent data matches retrieved data and persists across requests

Authentication

Test token creation, validation, and rejection of invalid credentials

Negative Testing

Validate API behavior with invalid inputs, edge cases, and error scenarios

Workflow Validation

Test multi-step sequences and state management across requests

Framework Architecture

The codebase uses professional patterns for maintainability and reusability:

tests/api/ ├── suites/ │ ├── health.spec.ts │ ├── auth.spec.ts │ ├── create.spec.ts │ └── ... (6 more suites) ├── clients/ │ ├── api-client.ts (base) │ ├── auth-client.ts │ └── booking-client.ts ├── models/ │ ├── booking.ts │ └── auth.ts └── fixtures/ └── test-data.ts

Key Design Principles:

  • Reusable API Clients — Eliminates duplication across test suites
  • TypeScript Interfaces — Type-safe test data and response validation
  • Centralized Test Data — Consistent fixtures shared across all suites
  • Clean Test Organization — Each suite targets specific endpoint or workflow
  • Meaningful Assertions — Status codes, structure, data, persistence validation

Negative Testing

The test suite includes 8 negative tests validating API resilience beyond happy-path scenarios:

Invalid Credentials
Invalid IDs
Invalid Inputs
Missing Fields
Edge Cases

These tests ensure the API correctly rejects invalid requests and returns meaningful error messages, not just verifying successful operations.

Evidence & Verification

All project artifacts are publicly available on GitHub for independent inspection and verification.

Source Code

Complete Playwright Test framework with API clients, fixtures, models, and comprehensive test specifications.

View Repository →

CI/CD Execution

GitHub Actions workflow showing automated test execution on every commit, complete run history, and results.

View CI/CD Logs →

Documentation

README file with project structure, test descriptions, setup instructions, and framework architecture overview.

View Documentation →

What This Project Demonstrates

API Testing
TypeScript
Test Architecture
Negative Testing
CI/CD Automation

Explore the Project

Inspect the complete source code, test suites, CI/CD configuration, and documentation on GitHub.