Skip to content

Improve YUM test coverage for ListInstalled, Clean, and GetPackageInfo methods #32

Description

@bluet

Problem Statement

YUM package manager has 0% test coverage for three critical methods:

  • ListInstalled() - Currently 0% coverage
  • Clean() - Currently 0% coverage
  • GetPackageInfo() - Currently 0% coverage

Current Test Coverage Status

From recent go test ./manager/yum -cover results:

  • Overall YUM coverage: 69.4%
  • Good coverage: enhancePackagesWithStatus (89.5%), Find (76.9%)
  • Missing coverage: ListInstalled, Clean, GetPackageInfo (0% each)

Acceptance Criteria

  • Add comprehensive tests for ListInstalled() method
  • Add comprehensive tests for Clean() method
  • Add comprehensive tests for GetPackageInfo() method
  • Use existing fixture-based testing patterns
  • Follow testing philosophy: focus on behavior and contracts
  • Maintain or improve overall YUM test coverage percentage
  • All new tests pass in CI/CD pipeline

Implementation Approach

  1. Use existing patterns: Follow established fixture-based testing in behavior_test.go
  2. Leverage CommandRunner mocking: Use MockCommandRunner for unit tests
  3. Real fixture data: Use authentic YUM command outputs from testing/fixtures/yum/
  4. Cross-platform testing: Ensure tests work in Docker environments

Test Strategy

  • ListInstalled: Test parsing of yum list installed output with various package states
  • Clean: Test cache cleanup operations and output parsing
  • GetPackageInfo: Test detailed package information retrieval and parsing

Priority

High Priority - These are core YUM operations that need test coverage for reliability and maintainability.

Related Issues

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    testingTesting infrastructure and strategy

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions