chore: more work done and planning with AI.
This commit is contained in:
@@ -24,9 +24,9 @@ func TestFormatHeaderGolden(t *testing.T) {
|
||||
|
||||
want := "--select * from dropall('resolvespec_login');\n" +
|
||||
"CREATE OR REPLACE FUNCTION resolvespec_login(\n" +
|
||||
" INOUT p_data jsonb\n" +
|
||||
" INOUT p_data jsonb\n" +
|
||||
" ,OUT p_success boolean\n" +
|
||||
" ,OUT p_error text\n" +
|
||||
" ,OUT p_error text\n" +
|
||||
")\n" +
|
||||
"LANGUAGE plpgsql\n" +
|
||||
"VOLATILE\n" +
|
||||
@@ -71,6 +71,42 @@ func TestFormatBodyBroken(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatMmProcBroken(t *testing.T) {
|
||||
dir := filepath.Join("..", "..", "testdata", "corpus")
|
||||
brokenData, err := os.ReadFile(filepath.Join(dir, "test_mm_proc_broken.pgsql"))
|
||||
if err != nil {
|
||||
t.Skipf("no test_mm_proc_broken.pgsql: %v", err)
|
||||
}
|
||||
goldenData, err := os.ReadFile(filepath.Join(dir, "test_mm_proc.pgsql"))
|
||||
if err != nil {
|
||||
t.Skipf("no test_mm_proc.pgsql: %v", err)
|
||||
}
|
||||
|
||||
got := format(string(brokenData))
|
||||
want := string(goldenData)
|
||||
if got != want {
|
||||
// Find and report the first differing line.
|
||||
gotLines := strings.Split(got, "\n")
|
||||
wantLines := strings.Split(want, "\n")
|
||||
for i := 0; i < len(gotLines) && i < len(wantLines); i++ {
|
||||
if gotLines[i] != wantLines[i] {
|
||||
t.Errorf("format(test_mm_proc_broken) != test_mm_proc.pgsql at line %d\n got: %q\n want: %q", i+1, gotLines[i], wantLines[i])
|
||||
break
|
||||
}
|
||||
}
|
||||
if len(gotLines) != len(wantLines) {
|
||||
t.Errorf("format(test_mm_proc_broken): got %d lines, want %d lines", len(gotLines), len(wantLines))
|
||||
}
|
||||
}
|
||||
twice := format(got)
|
||||
if twice != got {
|
||||
t.Errorf("format(test_mm_proc_broken) is not idempotent")
|
||||
}
|
||||
if !semanticallyEqual(string(brokenData), got) {
|
||||
t.Errorf("format(test_mm_proc_broken) changed semantics")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCorpusIdempotentAndSafe(t *testing.T) {
|
||||
dir := filepath.Join("..", "..", "testdata", "corpus")
|
||||
entries, err := os.ReadDir(dir)
|
||||
@@ -79,7 +115,7 @@ func TestCorpusIdempotentAndSafe(t *testing.T) {
|
||||
}
|
||||
var seen int
|
||||
for _, e := range entries {
|
||||
if e.IsDir() || !strings.HasSuffix(e.Name(), ".pgsql") {
|
||||
if e.IsDir() || !strings.HasSuffix(e.Name(), ".pgsql") || strings.HasSuffix(e.Name(), "_broken.pgsql") {
|
||||
continue
|
||||
}
|
||||
seen++
|
||||
|
||||
Reference in New Issue
Block a user