diff options
| author | Paul Buetow <paul@buetow.org> | 2026-07-07 00:17:27 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-07-07 00:17:27 +0300 |
| commit | ab6e1341dc5eb06b6573571f8c17e19d0c393418 (patch) | |
| tree | f9aa00bf0cf3ab302ecb2d152f7e781793112ba5 /internal/resource/pkg/dnf_test.go | |
| parent | 62ff4e782bc057d277a7c41fa35a665e2aeca045 (diff) | |
can manage dnf packages
Diffstat (limited to 'internal/resource/pkg/dnf_test.go')
| -rw-r--r-- | internal/resource/pkg/dnf_test.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/internal/resource/pkg/dnf_test.go b/internal/resource/pkg/dnf_test.go new file mode 100644 index 0000000..e9778dd --- /dev/null +++ b/internal/resource/pkg/dnf_test.go @@ -0,0 +1,52 @@ +package pkg + +import ( + "os" + "testing" +) + +func TestApplyDNF(t *testing.T) { + // Only run this test if explicitly enabled via environment variable. + if os.Getenv("GONF_RUN_DNF_TESTS") != "1" { + t.Skip("Skipping DNF test: GONF_RUN_DNF_TESTS=1 not set") + } + + // Skip if not running as root, as dnf requires superuser privileges. + if os.Getuid() != 0 { + t.Skip("Skipping DNF test: root privileges required") + } + + p := &Package{ + name: "tig", + } + + t.Run("Present", func(t *testing.T) { + p.absent = false + p.latest = false + if err := applyDNF(p); err != nil { + t.Errorf("applyDNF Present failed: %v", err) + } + }) + + t.Run("Latest", func(t *testing.T) { + p.absent = false + p.latest = true + if err := applyDNF(p); err != nil { + t.Errorf("applyDNF Latest failed: %v", err) + } + }) + + t.Run("Absent", func(t *testing.T) { + p.absent = true + p.latest = false + if err := applyDNF(p); err != nil { + t.Errorf("applyDNF Absent failed: %v", err) + } + + // // Restore the package so we don't leave the system in a changed state + // p.absent = false + // if err := applyDNF(p); err != nil { + // t.Errorf("failed to restore package tig after Absent test: %v", err) + // } + }) +} |
