aboutsummaryrefslogtreecommitdiffstats
path: root/services/gitdiff/csv_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'services/gitdiff/csv_test.go')
-rw-r--r--services/gitdiff/csv_test.go143
1 files changed, 121 insertions, 22 deletions
diff --git a/services/gitdiff/csv_test.go b/services/gitdiff/csv_test.go
index fb84d6ed06..1710e91c58 100644
--- a/services/gitdiff/csv_test.go
+++ b/services/gitdiff/csv_test.go
@@ -19,9 +19,9 @@ func TestCSVDiff(t *testing.T) {
diff string
base string
head string
- cells [][2]TableDiffCellType
+ cells [][]TableDiffCellType
}{
- // case 0
+ // case 0 - initial commit of a csv
{
diff: `diff --git a/unittest.csv b/unittest.csv
--- a/unittest.csv
@@ -29,11 +29,14 @@ func TestCSVDiff(t *testing.T) {
@@ -0,0 +1,2 @@
+col1,col2
+a,a`,
- base: "",
- head: "col1,col2\na,a",
- cells: [][2]TableDiffCellType{{TableDiffCellAdd, TableDiffCellAdd}, {TableDiffCellAdd, TableDiffCellAdd}},
+ base: "",
+ head: `col1,col2
+a,a`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellAdd, TableDiffCellAdd},
+ {TableDiffCellAdd, TableDiffCellAdd}},
},
- // case 1
+ // case 1 - adding 1 row at end
{
diff: `diff --git a/unittest.csv b/unittest.csv
--- a/unittest.csv
@@ -43,11 +46,17 @@ func TestCSVDiff(t *testing.T) {
-a,a
+a,a
+b,b`,
- base: "col1,col2\na,a",
- head: "col1,col2\na,a\nb,b",
- cells: [][2]TableDiffCellType{{TableDiffCellEqual, TableDiffCellEqual}, {TableDiffCellEqual, TableDiffCellEqual}, {TableDiffCellAdd, TableDiffCellAdd}},
+ base: `col1,col2
+a,a`,
+ head: `col1,col2
+a,a
+b,b`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellUnchanged, TableDiffCellUnchanged}, {TableDiffCellUnchanged, TableDiffCellUnchanged},
+ {TableDiffCellAdd, TableDiffCellAdd},
+ },
},
- // case 2
+ // case 2 - row deleted
{
diff: `diff --git a/unittest.csv b/unittest.csv
--- a/unittest.csv
@@ -56,11 +65,17 @@ func TestCSVDiff(t *testing.T) {
col1,col2
-a,a
b,b`,
- base: "col1,col2\na,a\nb,b",
- head: "col1,col2\nb,b",
- cells: [][2]TableDiffCellType{{TableDiffCellEqual, TableDiffCellEqual}, {TableDiffCellDel, TableDiffCellDel}, {TableDiffCellEqual, TableDiffCellEqual}},
+ base: `col1,col2
+a,a
+b,b`,
+ head: `col1,col2
+b,b`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellUnchanged, TableDiffCellUnchanged}, {TableDiffCellDel, TableDiffCellDel},
+ {TableDiffCellUnchanged, TableDiffCellUnchanged},
+ },
},
- // case 3
+ // case 3 - row changed
{
diff: `diff --git a/unittest.csv b/unittest.csv
--- a/unittest.csv
@@ -69,11 +84,16 @@ func TestCSVDiff(t *testing.T) {
col1,col2
-b,b
+b,c`,
- base: "col1,col2\nb,b",
- head: "col1,col2\nb,c",
- cells: [][2]TableDiffCellType{{TableDiffCellEqual, TableDiffCellEqual}, {TableDiffCellEqual, TableDiffCellChanged}},
+ base: `col1,col2
+b,b`,
+ head: `col1,col2
+b,c`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellUnchanged, TableDiffCellUnchanged},
+ {TableDiffCellUnchanged, TableDiffCellChanged},
+ },
},
- // case 4
+ // case 4 - all deleted
{
diff: `diff --git a/unittest.csv b/unittest.csv
--- a/unittest.csv
@@ -81,9 +101,88 @@ func TestCSVDiff(t *testing.T) {
@@ -1,2 +0,0 @@
-col1,col2
-b,c`,
- base: "col1,col2\nb,c",
- head: "",
- cells: [][2]TableDiffCellType{{TableDiffCellDel, TableDiffCellDel}, {TableDiffCellDel, TableDiffCellDel}},
+ base: `col1,col2
+b,c`,
+ head: "",
+ cells: [][]TableDiffCellType{
+ {TableDiffCellDel, TableDiffCellDel},
+ {TableDiffCellDel, TableDiffCellDel},
+ },
+ },
+ // case 5 - renames first column
+ {
+ diff: `diff --git a/unittest.csv b/unittest.csv
+--- a/unittest.csv
++++ b/unittest.csv
+@@ -1,3 +1,3 @@
+-col1,col2,col3
++cola,col2,col3
+ a,b,c`,
+ base: `col1,col2,col3
+a,b,c`,
+ head: `cola,col2,col3
+a,b,c`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellDel, TableDiffCellAdd, TableDiffCellUnchanged, TableDiffCellUnchanged},
+ {TableDiffCellDel, TableDiffCellAdd, TableDiffCellUnchanged, TableDiffCellUnchanged},
+ },
+ },
+ // case 6 - inserts a column after first, deletes last column
+ {
+ diff: `diff --git a/unittest.csv b/unittest.csv
+--- a/unittest.csv
++++ b/unittest.csv
+@@ -1,2 +1,2 @@
+-col1,col2,col3
+-a,b,c
++col1,col1a,col2
++a,d,b`,
+ base: `col1,col2,col3
+a,b,c`,
+ head: `col1,col1a,col2
+a,d,b`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellUnchanged, TableDiffCellAdd, TableDiffCellDel, TableDiffCellMovedUnchanged},
+ {TableDiffCellUnchanged, TableDiffCellAdd, TableDiffCellDel, TableDiffCellMovedUnchanged},
+ },
+ },
+ // case 7 - deletes first column, inserts column after last
+ {
+ diff: `diff --git a/unittest.csv b/unittest.csv
+--- a/unittest.csv
++++ b/unittest.csv
+@@ -1,2 +1,2 @@
+-col1,col2,col3
+-a,b,c
++col2,col3,col4
++b,c,d`,
+ base: `col1,col2,col3
+a,b,c`,
+ head: `col2,col3,col4
+b,c,d`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellDel, TableDiffCellUnchanged, TableDiffCellUnchanged, TableDiffCellAdd},
+ {TableDiffCellDel, TableDiffCellUnchanged, TableDiffCellUnchanged, TableDiffCellAdd},
+ },
+ },
+ // case 8 - two columns deleted, 2 added
+ {
+ diff: `diff --git a/unittest.csv b/unittest.csv
+--- a/unittest.csv
++++ b/unittest.csv
+@@ -1,2 +1,2 @@
+-col1,col2,col
+-a,b,c
++col3,col4,col5
++c,d,e`,
+ base: `col1,col2,col3
+a,b,c`,
+ head: `col3,col4,col5
+c,d,e`,
+ cells: [][]TableDiffCellType{
+ {TableDiffCellDel, TableDiffCellMovedUnchanged, TableDiffCellDel, TableDiffCellAdd, TableDiffCellAdd},
+ {TableDiffCellDel, TableDiffCellMovedUnchanged, TableDiffCellDel, TableDiffCellAdd, TableDiffCellAdd},
+ },
},
}
@@ -116,7 +215,7 @@ func TestCSVDiff(t *testing.T) {
assert.Len(t, section.Rows, len(c.cells), "case %d: should be %d rows", n, len(c.cells))
for i, row := range section.Rows {
- assert.Len(t, row.Cells, 2, "case %d: row %d should have two cells", n, i)
+ assert.Len(t, row.Cells, len(c.cells[i]), "case %d: row %d should have %d cells", n, i, len(c.cells[i]))
for j, cell := range row.Cells {
assert.Equal(t, c.cells[i][j], cell.Type, "case %d: row %d cell %d should be equal", n, i, j)
}