Download internal/ui/diffview/udiff_test.go from SaylorTwift/crush: direct link, hf CLI and curl.
- Browser
- Download file 2.26 kB
-
https://huggingface.co/SaylorTwift/crush/resolve/main/internal/ui/diffview/udiff_test.go
- Command line
-
hf download hf://SaylorTwift/crush/internal/ui/diffview/udiff_test.go
-
curl -L -o udiff_test.go https://huggingface.co/SaylorTwift/crush/resolve/main/internal/ui/diffview/udiff_test.go
2.26 kB
| package diffview_test | |
| import ( | |
| "bytes" | |
| "encoding/json" | |
| "testing" | |
| "github.com/aymanbagabas/go-udiff" | |
| "github.com/charmbracelet/x/exp/golden" | |
| ) | |
| func TestUdiff(t *testing.T) { | |
| before := `package main | |
| import ( | |
| "fmt" | |
| ) | |
| func main() { | |
| fmt.Println("Hello, World!") | |
| }` | |
| after := `package main | |
| import ( | |
| "fmt" | |
| ) | |
| func main() { | |
| content := "Hello, World!" | |
| fmt.Println(content) | |
| }` | |
| t.Run("Unified", func(t *testing.T) { | |
| content := udiff.Unified("main.go", "main.go", before, after) | |
| golden.RequireEqual(t, []byte(content)) | |
| }) | |
| t.Run("ToUnifiedDiff", func(t *testing.T) { | |
| toUnifiedDiff := func(t *testing.T, before, after string, contextLines int) udiff.UnifiedDiff { | |
| edits := udiff.Lines(before, after) | |
| unifiedDiff, err := udiff.ToUnifiedDiff("main.go", "main.go", before, edits, contextLines) | |
| if err != nil { | |
| t.Fatalf("ToUnifiedDiff failed: %v", err) | |
| } | |
| return unifiedDiff | |
| } | |
| toJSON := func(t *testing.T, unifiedDiff udiff.UnifiedDiff) []byte { | |
| var buff bytes.Buffer | |
| encoder := json.NewEncoder(&buff) | |
| encoder.SetIndent("", " ") | |
| if err := encoder.Encode(unifiedDiff); err != nil { | |
| t.Fatalf("Failed to encode unified diff: %v", err) | |
| } | |
| return buff.Bytes() | |
| } | |
| t.Run("DefaultContextLines", func(t *testing.T) { | |
| unifiedDiff := toUnifiedDiff(t, before, after, udiff.DefaultContextLines) | |
| t.Run("Content", func(t *testing.T) { | |
| golden.RequireEqual(t, []byte(unifiedDiff.String())) | |
| }) | |
| t.Run("JSON", func(t *testing.T) { | |
| golden.RequireEqual(t, toJSON(t, unifiedDiff)) | |
| }) | |
| }) | |
| t.Run("DefaultContextLinesPlusOne", func(t *testing.T) { | |
| unifiedDiff := toUnifiedDiff(t, before, after, udiff.DefaultContextLines+1) | |
| t.Run("Content", func(t *testing.T) { | |
| golden.RequireEqual(t, []byte(unifiedDiff.String())) | |
| }) | |
| t.Run("JSON", func(t *testing.T) { | |
| golden.RequireEqual(t, toJSON(t, unifiedDiff)) | |
| }) | |
| }) | |
| t.Run("DefaultContextLinesPlusTwo", func(t *testing.T) { | |
| unifiedDiff := toUnifiedDiff(t, before, after, udiff.DefaultContextLines+2) | |
| t.Run("Content", func(t *testing.T) { | |
| golden.RequireEqual(t, []byte(unifiedDiff.String())) | |
| }) | |
| t.Run("JSON", func(t *testing.T) { | |
| golden.RequireEqual(t, toJSON(t, unifiedDiff)) | |
| }) | |
| }) | |
| }) | |
| } | |