Skip to content

Detect integration test frameworks per language and prefer Playwright for browser-based apps #145

Description

@markcallen

Problem

Ballast currently detects language profiles from a narrow set of repo markers. That misses some real application surfaces, and it also means testing guidance can drift away from the actual integration test framework already present in the repo.

A recent example is a mixed Ansible/Terraform repo with a root package.json and playwright.config.mjs. Ballast did not recognize the JavaScript/TypeScript test component as a TypeScript profile because monorepo profile detection only looked for tsconfig.json.

Goal

Improve Ballast's repo inspection so it can detect integration testing frameworks for each supported language and generate more accurate testing guidance.

Requirements

  • Detect common integration testing frameworks by language during repo inspection.
  • For browser-based applications, prefer Playwright in testing guidance and generated rules when Playwright is already present or when the app shape clearly indicates browser automation.
  • Keep the detection conservative enough to avoid placeholder config false positives.
  • Use the same detection model consistently across single-language and monorepo flows.

Initial scope

  • TypeScript/JavaScript:
    • Detect Playwright via markers such as playwright.config.*, @playwright/test, or playwright in package.json.
    • Consider additional browser/integration signals separately from unit-test-only setups.
  • Python:
    • Detect integration test frameworks already used in the repo and distinguish browser-driven flows from API/service integration tests.
  • Go:
    • Detect integration/E2E test setups and browser-driven automation where applicable.
  • Ansible/Terraform:
    • Detect smoke/integration test tooling where present and avoid assuming only syntax/validation checks.

Acceptance criteria

  • Repos with existing Playwright config are recognized as having a browser integration test surface.
  • Mixed-language repos use the same detection logic in monorepo planning and single-language detection.
  • Browser-based app testing guidance prefers Playwright when appropriate.
  • Detection is covered by automated tests with both positive and negative cases.

Notes

This issue is intentionally about framework detection and generated guidance, not only language profile detection. The immediate wrapper warning for JavaScript components without tsconfig.json is handled separately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions