2025-11-03 16:31:26 +00:00
|
|
|
package cmd
|
|
|
|
|
|
|
|
|
|
import (
|
2025-11-03 18:25:04 +00:00
|
|
|
"fmt"
|
2025-11-03 16:31:26 +00:00
|
|
|
"strings"
|
|
|
|
|
"testing"
|
2025-11-03 18:25:04 +00:00
|
|
|
|
|
|
|
|
"github.com/Snider/Borg/pkg/datanode"
|
|
|
|
|
"github.com/Snider/Borg/pkg/pwa"
|
2025-11-03 16:31:26 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestCollectPWACmd_NoURI(t *testing.T) {
|
|
|
|
|
rootCmd := NewRootCmd()
|
|
|
|
|
collectCmd := NewCollectCmd()
|
|
|
|
|
collectPWACmd := NewCollectPWACmd()
|
|
|
|
|
collectCmd.AddCommand(&collectPWACmd.Command)
|
|
|
|
|
rootCmd.AddCommand(collectCmd)
|
|
|
|
|
_, err := executeCommand(rootCmd, "collect", "pwa")
|
|
|
|
|
if err == nil {
|
|
|
|
|
t.Fatalf("expected an error, but got none")
|
|
|
|
|
}
|
|
|
|
|
if !strings.Contains(err.Error(), "uri is required") {
|
|
|
|
|
t.Fatalf("unexpected error message: %v", err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
func Test_NewCollectPWACmd(t *testing.T) {
|
|
|
|
|
if NewCollectPWACmd() == nil {
|
|
|
|
|
t.Errorf("NewCollectPWACmd is nil")
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-03 18:25:04 +00:00
|
|
|
|
|
|
|
|
func TestCollectPWA_Good(t *testing.T) {
|
|
|
|
|
mockClient := &pwa.MockPWAClient{
|
|
|
|
|
ManifestURL: "https://example.com/manifest.json",
|
|
|
|
|
DN: datanode.New(),
|
|
|
|
|
Err: nil,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_, err := CollectPWA(mockClient, "https://example.com", "/dev/null", "datanode", "none")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("CollectPWA failed: %v", err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestCollectPWA_Bad(t *testing.T) {
|
|
|
|
|
mockClient := &pwa.MockPWAClient{
|
|
|
|
|
ManifestURL: "",
|
|
|
|
|
DN: nil,
|
|
|
|
|
Err: fmt.Errorf("pwa error"),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_, err := CollectPWA(mockClient, "https://example.com", "/dev/null", "datanode", "none")
|
|
|
|
|
if err == nil {
|
|
|
|
|
t.Fatalf("expected an error, but got none")
|
|
|
|
|
}
|
|
|
|
|
}
|