diff --git a/cmd/fejkdata/main_test.go b/cmd/fejkdata/main_test.go index c0b473b..07a29d8 100644 --- a/cmd/fejkdata/main_test.go +++ b/cmd/fejkdata/main_test.go @@ -333,6 +333,20 @@ func TestRunInlineTemplate(t *testing.T) { } } +func TestRunTemplateMisuse(t *testing.T) { + for _, arg := range []string{ + "{bad", // unterminated brace + "[red,green]", // a near-miss JSON array (unquoted strings) + `{"format":"x"}`, // an object holding only a format + "{/no.such.path}", // a reference into nothing + } { + code, out, errb := runOut("--seed", "1", arg) + if code != 2 || out != "" || !strings.Contains(errb, "try 'fejkdata --help'") { + t.Errorf("run(%q) = %d, %q, %q; want misuse naming --help", arg, code, out, errb) + } + } +} + func TestRunNoShippedData(t *testing.T) { code, list, errb := runOut("--no-shipped-data", "-d", svSE, "--list") if code != 0 { diff --git a/faketemplate_test.go b/faketemplate_test.go index c67b36e..3cef4dd 100644 --- a/faketemplate_test.go +++ b/faketemplate_test.go @@ -76,6 +76,14 @@ func TestFakeTemplateDeterministic(t *testing.T) { } } +func TestBareStringReferenceHint(t *testing.T) { + f := shipped(t) + _, err := f.FakeTemplate(`{sv_SE.person.last}`) + if err == nil || !strings.Contains(err.Error(), "write {/sv_SE.person.last}") { + t.Fatalf("FakeTemplate(bare token) = %v, want a hint naming {/sv_SE.person.last}", err) + } +} + func TestFakeTemplateErrors(t *testing.T) { f := shipped(t) for _, c := range []struct {