Test a blank TSV line, a CRLF file, a table reaching its family through a template, and a failed Fake leaving the stream
This commit is contained in:
@@ -403,6 +403,9 @@ func TestTableFences(t *testing.T) {
|
|||||||
"empty column name": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\t\nx\ty\n"}, "empty"},
|
"empty column name": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\t\nx\ty\n"}, "empty"},
|
||||||
"short row": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\tb\nx\ty\nz\n"}, "line 3"},
|
"short row": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\tb\nx\ty\nz\n"}, "line 3"},
|
||||||
"no rows": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\n"}, "no rows"},
|
"no rows": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\n"}, "no rows"},
|
||||||
|
"a blank line after the rows": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\tb\nx\t1\ny\t2\n\n"}, "line 4"},
|
||||||
|
"a blank line in one column": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\nx\n\ny\n"}, "line 3"},
|
||||||
|
"a table reaching its family through a template": {with(geo(), map[string]string{"addr.json": `"{/locality.name}"`, "region.tsv": "code\tname\tpopulation\ttimezone\tnote\n01\tStockholms län\t2400000\tEurope/Stockholm\t{/addr}\n12\tSkåne län\t1400000\tEurope/Stockholm\t-\n14\tVästra Götalands län\t1750000\tEurope/Stockholm\t-\n"}), "family"},
|
||||||
"one row": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\nx\n"}, "one row"},
|
"one row": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": "a\nx\n"}, "one row"},
|
||||||
"empty file": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": ""}, "header"},
|
"empty file": {map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv"}`, "t.tsv": ""}, "header"},
|
||||||
"parent is not a table": {map[string]string{"p.json": `"x"`, "t.json": `{"format":"{a}","rows":"t.tsv","parent":"p"}`, "t.tsv": "a\tp\nx\tx\ny\tx\n"}, "not a table"},
|
"parent is not a table": {map[string]string{"p.json": `"x"`, "t.json": `{"format":"{a}","rows":"t.tsv","parent":"p"}`, "t.tsv": "a\tp\nx\tx\ny\tx\n"}, "not a table"},
|
||||||
@@ -445,6 +448,17 @@ func TestTableFences(t *testing.T) {
|
|||||||
if v := fake(t, bom, "t[x].b"); v != "1" {
|
if v := fake(t, bom, "t[x].b"); v != "1" {
|
||||||
t.Fatalf("t[x].b under a BOM header = %q, want the mark stripped", v)
|
t.Fatalf("t[x].b under a BOM header = %q, want the mark stripped", v)
|
||||||
}
|
}
|
||||||
|
crlf := newGenerator(t, writeFiles(t, map[string]string{"t.json": `{"format":"{a}","rows":"t.tsv","key":"a"}`, "t.tsv": "a\tb\r\nx\t1\r\ny\t2\r\n"}), WithSeed(1))
|
||||||
|
if v := fake(t, crlf, "t[y].b"); v != "2" {
|
||||||
|
t.Fatalf("t[y].b in a CRLF file = %q, want the carriage return stripped", v)
|
||||||
|
}
|
||||||
|
a, b := newGenerator(t, writeFiles(t, geo()), WithSeed(1)), newGenerator(t, writeFiles(t, geo()), WithSeed(1))
|
||||||
|
if _, err := a.Fake("region.nope"); err == nil {
|
||||||
|
t.Fatal("Fake(region.nope) = nil error")
|
||||||
|
}
|
||||||
|
if x, y := fake(t, a, "region.name"), fake(t, b, "region.name"); x != y {
|
||||||
|
t.Fatalf("a failed Fake shifted the seeded stream: %q != %q", x, y)
|
||||||
|
}
|
||||||
empty := newGenerator(t, writeFiles(t, map[string]string{"t.json": `{"format":"","rows":"t.tsv","key":"a"}`, "t.tsv": "a\tb\nx\t1\ny\t2\n"}), WithSeed(1))
|
empty := newGenerator(t, writeFiles(t, map[string]string{"t.json": `{"format":"","rows":"t.tsv","key":"a"}`, "t.tsv": "a\tb\nx\t1\ny\t2\n"}), WithSeed(1))
|
||||||
if v := fake(t, empty, "t"); v != "" {
|
if v := fake(t, empty, "t"); v != "" {
|
||||||
t.Fatalf("a record-only table renders %q, want \"\"", v)
|
t.Fatalf("a record-only table renders %q, want \"\"", v)
|
||||||
|
|||||||
Reference in New Issue
Block a user