Skip to content

Add ESLint plugin for annotation enforcement #6

@prosdev

Description

@prosdev

Branch: feat/add-eslint-plugin

Priority: Low

Estimate: 4-5 hours

Parent Epic: #1

Dependencies: #2

Description

Create ESLint plugin to enforce annotation best practices at lint time. This prevents common mistakes like missing annotations, incorrect naming patterns, and duplicate test case IDs. It provides immediate feedback during development rather than at runtime.

Acceptance Criteria

  • Linter catches missing testSuiteName, journeyId, or testCaseId annotations
  • Linter validates annotation naming patterns and hierarchy
  • Linter detects duplicate testCaseId values across test files
  • Can be configured in eslint.config.js with custom rules
  • Documentation includes setup guide and rule configuration options
  • Unit tests for each rule cover common scenarios

Technical Requirements

  • Create plugin structure in packages/annotations/src/eslint-plugin/
  • Implement require-test-annotations rule (error if missing)
  • Implement valid-annotation-format rule (warn for naming issues)
  • Implement no-duplicate-test-case-id rule (error on duplicates)
  • Write comprehensive tests for each rule
  • Export plugin from @lytics/playwright-annotations/eslint
  • Add configuration examples to README

New Files

  • packages/annotations/src/eslint-plugin/index.ts
  • packages/annotations/src/eslint-plugin/rules/require-test-annotations.ts
  • packages/annotations/src/eslint-plugin/rules/valid-annotation-format.ts
  • packages/annotations/src/eslint-plugin/rules/no-duplicate-test-case-id.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions