MCPcopy
hub / github.com/sqlc-dev/sqlc / TestSplit

Function TestSplit

internal/sql/sqlfile/split_test.go:12–74  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

10)
11
12func TestSplit(t *testing.T) {
13 testdataDir := "testdata"
14
15 entries, err := os.ReadDir(testdataDir)
16 if err != nil {
17 t.Fatalf("Failed to read testdata directory: %v", err)
18 }
19
20 for _, entry := range entries {
21 if !entry.IsDir() {
22 continue
23 }
24
25 testName := entry.Name()
26 t.Run(testName, func(t *testing.T) {
27 testDir := filepath.Join(testdataDir, testName)
28
29 // Read input file
30 inputPath := filepath.Join(testDir, "input.sql")
31 inputData, err := os.ReadFile(inputPath)
32 if err != nil {
33 t.Fatalf("Failed to read input file: %v", err)
34 }
35
36 // Read expected output files
37 var expected []string
38 for i := 1; ; i++ {
39 outputPath := filepath.Join(testDir, fmt.Sprintf("output_%d.sql", i))
40 data, err := os.ReadFile(outputPath)
41 if err != nil {
42 if os.IsNotExist(err) {
43 break
44 }
45 t.Fatalf("Failed to read output file %s: %v", outputPath, err)
46 }
47 expected = append(expected, string(data))
48 }
49
50 // Run Split
51 ctx := context.Background()
52 reader := strings.NewReader(string(inputData))
53
54 got, err := Split(ctx, reader)
55 if err != nil {
56 t.Fatalf("Split() error = %v", err)
57 }
58
59 // Compare results
60 if len(got) != len(expected) {
61 t.Errorf("Split() got %d queries, expected %d", len(got), len(expected))
62 t.Logf("Got: %v", got)
63 t.Logf("Expected: %v", expected)
64 return
65 }
66
67 for i := range got {
68 if got[i] != expected[i] {
69 t.Errorf("Query %d:\ngot: %q\nexpected: %q", i, got[i], expected[i])

Callers

nothing calls this directly

Calls 3

SplitFunction · 0.85
NameMethod · 0.65
JoinMethod · 0.45

Tested by

no test coverage detected