MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / TestWithClause

Function TestWithClause

pkg/sql/ast/nodes_test.go:22–94  ·  view source on GitHub ↗

Test WithClause node

(t *testing.T)

Source from the content-addressed store, hash-verified

20
21// Test WithClause node
22func TestWithClause(t *testing.T) {
23 tests := []struct {
24 name string
25 withClause *WithClause
26 wantLiteral string
27 wantChildren int
28 }{
29 {
30 name: "simple CTE",
31 withClause: &WithClause{
32 Recursive: false,
33 CTEs: []*CommonTableExpr{
34 {Name: "cte1", Statement: &SelectStatement{}},
35 },
36 },
37 wantLiteral: "WITH",
38 wantChildren: 1,
39 },
40 {
41 name: "recursive CTE",
42 withClause: &WithClause{
43 Recursive: true,
44 CTEs: []*CommonTableExpr{
45 {Name: "rec_cte", Statement: &SelectStatement{}},
46 },
47 },
48 wantLiteral: "WITH",
49 wantChildren: 1,
50 },
51 {
52 name: "multiple CTEs",
53 withClause: &WithClause{
54 Recursive: false,
55 CTEs: []*CommonTableExpr{
56 {Name: "cte1", Statement: &SelectStatement{}},
57 {Name: "cte2", Statement: &SelectStatement{}},
58 {Name: "cte3", Statement: &SelectStatement{}},
59 },
60 },
61 wantLiteral: "WITH",
62 wantChildren: 3,
63 },
64 {
65 name: "empty CTEs",
66 withClause: &WithClause{
67 Recursive: false,
68 CTEs: []*CommonTableExpr{},
69 },
70 wantLiteral: "WITH",
71 wantChildren: 0,
72 },
73 }
74
75 for _, tt := range tests {
76 tt := tt // G601: Create local copy to avoid memory aliasing
77 t.Run(tt.name, func(t *testing.T) {
78 // Test TokenLiteral
79 if got := tt.withClause.TokenLiteral(); got != tt.wantLiteral {

Callers

nothing calls this directly

Calls 5

RunMethod · 0.80
TokenLiteralMethod · 0.65
ErrorfMethod · 0.65
ChildrenMethod · 0.65
statementNodeMethod · 0.65

Tested by

no test coverage detected