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

Open
#32 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Stale
Tech stack
go

Research direction

Start with manager/yum and the fixture-based patterns in behavior_test.go, then review MockCommandRunner and the authentic outputs under testing/fixtures/yum/. Run go test ./manager/yum -cover first. Done means comprehensive behavior tests cover ListInstalled, Clean, and GetPackageInfo, pass in CI/CD, and maintain or improve overall YUM coverage.

Written by the indexing model from the issue text.

Description

testing

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

  • Part of overall test coverage improvement initiative
  • Follows CommandRunner architecture established in Issue #20
  • Uses patterns proven successful in APT package manager testing
Dominant language
Go
Stars
17
Forks
8
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bluet/syspkg

All issues in bluet/syspkg

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.