search-cli/internal/formatter/formatter_test.go

87 lines
1.6 KiB
Go
Raw Normal View History

2024-12-07 11:08:15 +00:00
package formatter
2024-12-07 00:54:31 +00:00
import (
"bytes"
"os"
"strings"
"testing"
2024-12-07 11:08:15 +00:00
"github.com/regismesquita/search-cli/internal/adapters"
2024-12-07 00:54:31 +00:00
)
func TestFormatResults(t *testing.T) {
results := &adapters.SearchResponse{
Results: []adapters.SearchResult{
{
URL: "https://example.com",
Content: "Test content",
},
},
}
// Capture stdout
old := os.Stdout
r, w, _ := os.Pipe()
os.Stdout = w
2024-12-07 11:08:15 +00:00
FormatResults(results)
2024-12-07 00:54:31 +00:00
w.Close()
os.Stdout = old
var buf bytes.Buffer
buf.ReadFrom(r)
output := buf.String()
if !strings.Contains(output, "https://example.com") {
t.Error("Expected output to contain URL")
}
if !strings.Contains(output, "Test content") {
t.Error("Expected output to contain content")
}
}
func TestFormatExtractResults(t *testing.T) {
results := &adapters.ExtractResponse{
Results: []adapters.ExtractResult{
{
URL: "https://example.com",
RawContent: "Test content",
},
},
FailedResults: []adapters.FailedResult{
{
URL: "https://failed.com",
Error: "Failed to extract",
},
},
}
// Capture stdout
old := os.Stdout
r, w, _ := os.Pipe()
os.Stdout = w
2024-12-07 11:08:15 +00:00
FormatExtractResults(results)
2024-12-07 00:54:31 +00:00
w.Close()
os.Stdout = old
var buf bytes.Buffer
buf.ReadFrom(r)
output := buf.String()
if !strings.Contains(output, "https://example.com") {
t.Error("Expected output to contain URL")
}
if !strings.Contains(output, "Test content") {
t.Error("Expected output to contain content")
}
if !strings.Contains(output, "Failed URLs") {
t.Error("Expected output to contain failed URLs section")
}
if !strings.Contains(output, "https://failed.com") {
t.Error("Expected output to contain failed URL")
}
}