cache-apt-pkgs-action/internal/pkgs/apt_test.go
2025-10-04 22:17:11 -07:00

65 lines
1.5 KiB
Go

package pkgs
import (
"testing"
)
func TestNewApt(t *testing.T) {
apt, err := NewApt()
if err != nil {
t.Fatalf("NewApt() error = %v", err)
}
if apt == nil {
t.Error("NewApt() returned nil without error")
}
}
func TestApt_Install(t *testing.T) {
// Note: These tests require a real system and apt to be available
// They should be run in a controlled environment like a Docker container
tests := []struct {
name string
pkgs []Package
expectedErr bool
}{
{
name: "Empty package list",
pkgs: []Package{},
expectedErr: false,
},
{
name: "Invalid package",
pkgs: []Package{{Name: "nonexistent-package-12345"}},
expectedErr: true,
},
}
apt, err := NewApt()
if err != nil {
t.Fatalf("Failed to create Apt instance: %v", err)
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
packages := NewPackages(tt.pkgs...)
_, err := apt.Install(packages)
if (err != nil) != tt.expectedErr {
t.Errorf("Apt.Install() error = %v, expectedErr %v", err, tt.expectedErr)
}
})
}
}
func TestApt_ListInstalledFiles_NonExistentPackage_ReturnsError(t *testing.T) {
// Note: These tests require a real system and apt to be available
apt, err := NewApt()
if err != nil {
t.Fatalf("Failed to create Apt instance: %v", err)
}
_, err = apt.ListInstalledFiles(&Package{Name: "nonexistent-package-12345"})
if err == nil {
t.Errorf("Apt.ListInstalledFiles() expected error, but got nil")
return
}
}