diff options
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) + // } + }) +} |
