@@ -26,84 +26,83 @@ var TestNarrowBefore string
26//go:embed testdata/TestNarrow.after
26//go:embed testdata/TestNarrow.after
27var TestNarrowAfter string
27var TestNarrowAfter string
29−func TestDefault(t *testing.T) {
29+type (
30− dv := diffview.New().
30+ TestFunc func(dv *diffview.DiffView) *diffview.DiffView
31− Before("main.go", TestDefaultBefore).
31+ TestFuncs map[string]TestFunc
32− After("main.go", TestDefaultAfter)
32+)
34− t.Run("LightMode", func(t *testing.T) {
35− dv = dv.Style(diffview.DefaultLightStyle)
36− golden.RequireEqual(t, []byte(dv.String()))
39− t.Run("DarkMode", func(t *testing.T) {
40− dv = dv.Style(diffview.DefaultDarkStyle)
41− golden.RequireEqual(t, []byte(dv.String()))
45−func TestNoLineNumbers(t *testing.T) {
46− dv := diffview.New().
47− Before("main.go", TestDefaultBefore).
48− After("main.go", TestDefaultAfter).
51− t.Run("LightMode", func(t *testing.T) {
52− dv = dv.Style(diffview.DefaultLightStyle)
53− golden.RequireEqual(t, []byte(dv.String()))
56− t.Run("DarkMode", func(t *testing.T) {
57− dv = dv.Style(diffview.DefaultDarkStyle)
58− golden.RequireEqual(t, []byte(dv.String()))
62−func TestMultipleHunks(t *testing.T) {
63− dv := diffview.New().
64− Before("main.go", TestMultipleHunksBefore).
65− After("main.go", TestMultipleHunksAfter)
67− t.Run("LightMode", func(t *testing.T) {
68− dv = dv.Style(diffview.DefaultLightStyle)
69− golden.RequireEqual(t, []byte(dv.String()))
72− t.Run("DarkMode", func(t *testing.T) {
73− dv = dv.Style(diffview.DefaultDarkStyle)
74− golden.RequireEqual(t, []byte(dv.String()))
78−func TestCustomContextLines(t *testing.T) {
79− dv := diffview.New().
80− Before("main.go", TestMultipleHunksBefore).
81− After("main.go", TestMultipleHunksAfter).
84− t.Run("LightMode", func(t *testing.T) {
85− dv = dv.Style(diffview.DefaultLightStyle)
86− golden.RequireEqual(t, []byte(dv.String()))
89− t.Run("DarkMode", func(t *testing.T) {
90− dv = dv.Style(diffview.DefaultDarkStyle)
91− golden.RequireEqual(t, []byte(dv.String()))
95−func TestNarrow(t *testing.T) {
96− dv := diffview.New().
97− Before("text.txt", TestNarrowBefore).
98− After("text.txt", TestNarrowAfter)
100− t.Run("LightMode", func(t *testing.T) {
34+var (
101− dv = dv.Style(diffview.DefaultLightStyle)
35+ UnifiedFunc = func(dv *diffview.DiffView) *diffview.DiffView {
102− golden.RequireEqual(t, []byte(dv.String()))
36+ return dv.Unified()
39+ DefaultFunc = func(dv *diffview.DiffView) *diffview.DiffView {
41+ Before("main.go", TestDefaultBefore).
42+ After("main.go", TestDefaultAfter)
44+ NoLineNumbersFunc = func(dv *diffview.DiffView) *diffview.DiffView {
46+ Before("main.go", TestDefaultBefore).
47+ After("main.go", TestDefaultAfter).
50+ MultipleHunksFunc = func(dv *diffview.DiffView) *diffview.DiffView {
52+ Before("main.go", TestMultipleHunksBefore).
53+ After("main.go", TestMultipleHunksAfter)
55+ CustomContextLinesFunc = func(dv *diffview.DiffView) *diffview.DiffView {
57+ Before("main.go", TestMultipleHunksBefore).
58+ After("main.go", TestMultipleHunksAfter).
61+ NarrowFunc = func(dv *diffview.DiffView) *diffview.DiffView {
63+ Before("text.txt", TestNarrowBefore).
64+ After("text.txt", TestNarrowAfter)
67+ LightModeFunc = func(dv *diffview.DiffView) *diffview.DiffView {
68+ return dv.Style(diffview.DefaultLightStyle)
70+ DarkModeFunc = func(dv *diffview.DiffView) *diffview.DiffView {
71+ return dv.Style(diffview.DefaultDarkStyle)
74+ LayoutFuncs = TestFuncs{
75+ "Unified": UnifiedFunc,
77+ BehaviorFuncs = TestFuncs{
78+ "Default": DefaultFunc,
79+ "NoLineNumbers": NoLineNumbersFunc,
80+ "MultipleHunks": MultipleHunksFunc,
81+ "CustomContextLines": CustomContextLinesFunc,
82+ "Narrow": NarrowFunc,
84+ ThemeFuncs = TestFuncs{
85+ "LightMode": LightModeFunc,
86+ "DarkMode": DarkModeFunc,
90+func TestDiffView(t *testing.T) {
91+ for layoutName, layoutFunc := range LayoutFuncs {
92+ t.Run(layoutName, func(t *testing.T) {
93+ for behaviorName, behaviorFunc := range BehaviorFuncs {
105− t.Run("DarkMode", func(t *testing.T) {
94+ t.Run(behaviorName, func(t *testing.T) {
106− dv = dv.Style(diffview.DefaultDarkStyle)
95+ for themeName, themeFunc := range ThemeFuncs {
96+ t.Run(themeName, func(t *testing.T) {
99+ dv = behaviorFunc(dv)
107− golden.RequireEqual(t, []byte(dv.String()))
101+ golden.RequireEqual(t, []byte(dv.String()))