Skip to content

Commit 80d85fe

Browse files
committed
Add unit tests
1 parent f767e9e commit 80d85fe

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

tools/cli/internal/openapi/versions_test.go

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,18 @@ func TestVersions(t *testing.T) {
2727
assert.Equal(t, []string{"2023-01-01", "2023-02-01"}, versions)
2828
}
2929

30+
func TestVersions_PrivatePreview(t *testing.T) {
31+
versions, err := ExtractVersionsWithEnv(NewVersionedResponses(t), "dev")
32+
require.NoError(t, err)
33+
assert.ElementsMatch(t, []string{"2023-01-01", "2023-02-01", "private-preview-info-resource", "preview"}, versions)
34+
}
35+
36+
func TestVersions_PublicPreview(t *testing.T) {
37+
versions, err := ExtractVersionsWithEnv(NewVersionedResponses(t), "qa")
38+
require.NoError(t, err)
39+
assert.Equal(t, []string{"2023-01-01", "2023-02-01", "preview"}, versions)
40+
}
41+
3042
func NewVersionedResponses(t *testing.T) *openapi3.T {
3143
t.Helper()
3244
inputPath := &openapi3.Paths{}
@@ -83,6 +95,83 @@ func NewVersionedResponses(t *testing.T) *openapi3.T {
8395
},
8496
})
8597

98+
extensionThree := map[string]any{
99+
"x-xgen-version": "preview",
100+
"x-xgen-preview": map[string]any{
101+
"name": "info-resource",
102+
},
103+
}
104+
105+
responseThree := &openapi3.ResponseRef{
106+
Value: &openapi3.Response{
107+
Extensions: nil,
108+
Content: map[string]*openapi3.MediaType{
109+
"application/vnd.atlas.preview+json": {
110+
Extensions: extensionThree,
111+
},
112+
},
113+
},
114+
}
115+
116+
hiddenEnvExtension := map[string]any{
117+
"x-xgen-hidden-env": map[string]any{
118+
"envs": "qa,prod",
119+
},
120+
}
121+
122+
responsesThree := &openapi3.Responses{}
123+
responsesThree.Set("200", responseThree)
124+
125+
inputPath.Set("pathBase3", &openapi3.PathItem{
126+
Extensions: hiddenEnvExtension,
127+
Ref: "",
128+
Summary: "pathBase3",
129+
Description: "pathBase3Description",
130+
Delete: &openapi3.Operation{
131+
Tags: []string{"tag1"},
132+
Responses: responsesThree,
133+
},
134+
})
135+
136+
extensionFour := map[string]any{
137+
"x-xgen-version": "preview",
138+
"x-xgen-preview": map[string]any{
139+
"public": "true",
140+
},
141+
}
142+
143+
responseFour := &openapi3.ResponseRef{
144+
Value: &openapi3.Response{
145+
Extensions: nil,
146+
Content: map[string]*openapi3.MediaType{
147+
"application/vnd.atlas.preview+json": {
148+
Extensions: extensionFour,
149+
},
150+
},
151+
},
152+
}
153+
154+
hiddenEnvExtensionTwo := map[string]any{
155+
"x-xgen-hidden-env": map[string]any{
156+
"envs": "prod",
157+
},
158+
}
159+
160+
responsesFour := &openapi3.Responses{}
161+
responsesFour.Set("200", responseFour)
162+
163+
inputPath.Set("pathBase4", &openapi3.PathItem{
164+
Extensions: hiddenEnvExtensionTwo,
165+
Ref: "",
166+
Summary: "pathBase4",
167+
Description: "pathBase4Description",
168+
Post: &openapi3.Operation{
169+
170+
Tags: []string{"tag1"},
171+
Responses: responsesFour,
172+
},
173+
})
174+
86175
oas := &openapi3.T{
87176
Paths: inputPath,
88177
}

0 commit comments

Comments
 (0)