-
Notifications
You must be signed in to change notification settings - Fork 105
Expand file tree
/
Copy patherror_tracking_test.go
More file actions
172 lines (143 loc) · 3.97 KB
/
Copy patherror_tracking_test.go
File metadata and controls
172 lines (143 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
// Unless explicitly stated otherwise all files in this repository are licensed
// under the Apache License Version 2.0.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2024-present Datadog, Inc.
package cmd
import (
"testing"
)
func TestErrorTrackingCmd(t *testing.T) {
if errorTrackingCmd == nil {
t.Fatal("errorTrackingCmd is nil")
}
if errorTrackingCmd.Use != "error-tracking" {
t.Errorf("Use = %s, want error-tracking", errorTrackingCmd.Use)
}
if errorTrackingCmd.Short == "" {
t.Error("Short description is empty")
}
if errorTrackingCmd.Long == "" {
t.Error("Long description is empty")
}
}
func TestErrorTrackingCmd_Subcommands(t *testing.T) {
// Check that issues subcommand exists
commands := errorTrackingCmd.Commands()
foundIssues := false
for _, cmd := range commands {
if cmd.Use == "issues" {
foundIssues = true
}
}
if !foundIssues {
t.Error("Missing issues subcommand")
}
}
func TestErrorTrackingIssuesCmd(t *testing.T) {
if errorTrackingIssuesCmd == nil {
t.Fatal("errorTrackingIssuesCmd is nil")
}
if errorTrackingIssuesCmd.Use != "issues" {
t.Errorf("Use = %s, want issues", errorTrackingIssuesCmd.Use)
}
if errorTrackingIssuesCmd.Short == "" {
t.Error("Short description is empty")
}
// Check for list and get subcommands
commands := errorTrackingIssuesCmd.Commands()
commandMap := make(map[string]bool)
for _, cmd := range commands {
commandMap[cmd.Use] = true
}
if !commandMap["search"] {
t.Error("Missing issues search subcommand")
}
// Check if get command exists
foundGet := false
for _, cmd := range commands {
if cmd.Use == "get [issue-id]" || cmd.Use == "get" {
foundGet = true
}
}
if !foundGet {
t.Error("Missing issues get subcommand")
}
}
func TestErrorTrackingIssuesSearchCmd(t *testing.T) {
if errorTrackingIssuesSearchCmd == nil {
t.Fatal("errorTrackingIssuesSearchCmd is nil")
}
if errorTrackingIssuesSearchCmd.Use != "search" {
t.Errorf("Use = %s, want search", errorTrackingIssuesSearchCmd.Use)
}
if errorTrackingIssuesSearchCmd.Short == "" {
t.Error("Short description is empty")
}
if errorTrackingIssuesSearchCmd.RunE == nil {
t.Error("RunE is nil")
}
}
func TestErrorTrackingIssuesSearchCmd_Flags(t *testing.T) {
flags := errorTrackingIssuesSearchCmd.Flags()
tests := []struct {
name string
defaultValue string
}{
{"query", "*"},
{"from", "1d"},
{"to", "now"},
{"order-by", "TOTAL_COUNT"},
{"limit", "10"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
f := flags.Lookup(tt.name)
if f == nil {
t.Fatalf("Missing --%s flag", tt.name)
}
if f.DefValue != tt.defaultValue {
t.Errorf("--%s default = %q, want %q", tt.name, f.DefValue, tt.defaultValue)
}
})
}
}
func TestErrorTrackingIssuesGetCmd(t *testing.T) {
if errorTrackingIssuesGetCmd == nil {
t.Fatal("errorTrackingIssuesGetCmd is nil")
}
if errorTrackingIssuesGetCmd.Use != "get [issue-id]" {
t.Errorf("Use = %s, want 'get [issue-id]'", errorTrackingIssuesGetCmd.Use)
}
if errorTrackingIssuesGetCmd.Short == "" {
t.Error("Short description is empty")
}
if errorTrackingIssuesGetCmd.RunE == nil {
t.Error("RunE is nil")
}
if errorTrackingIssuesGetCmd.Args == nil {
t.Error("Args validator is nil")
}
}
func TestErrorTrackingCmd_CommandHierarchy(t *testing.T) {
// Verify issues is a subcommand of error-tracking
commands := errorTrackingCmd.Commands()
foundIssues := false
for _, cmd := range commands {
if cmd.Use == "issues" {
foundIssues = true
if cmd.Parent() != errorTrackingCmd {
t.Error("issues parent is not errorTrackingCmd")
}
}
}
if !foundIssues {
t.Error("issues subcommand not found in error-tracking")
}
// Verify list and get are subcommands of issues
issuesCommands := errorTrackingIssuesCmd.Commands()
for _, cmd := range issuesCommands {
if cmd.Parent() != errorTrackingIssuesCmd {
t.Errorf("Command %s parent is not errorTrackingIssuesCmd", cmd.Use)
}
}
}