Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V2: Fix tests after module upgrade #1557

Merged
merged 2 commits into from
Apr 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion enums_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func TestParseGlobalEnums(t *testing.T) {
err := p.ParseAPI(searchDir, mainAPIFile, defaultParseDepth)
require.NoError(t, err)

const constsPath = "github.com/swaggo/swag/testdata/enums/consts"
const constsPath = "github.com/swaggo/swag/v2/testdata/enums/consts"
table := p.packages.packages[constsPath].ConstTable
require.NotNil(t, table, "const table must not be nil")

Expand Down
2 changes: 1 addition & 1 deletion gen/gen_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ func TestGen_BuildDescriptionWithQuotes(t *testing.T) {
require.NoError(t, err)
}
}
cmd := exec.Command("go", "build", "-buildmode=plugin", "github.com/swaggo/swag/testdata/quotes")
cmd := exec.Command("go", "build", "-buildmode=plugin", "github.com/swaggo/swag/v2/testdata/quotes")

cmd.Dir = config.SearchDir

Expand Down
14 changes: 8 additions & 6 deletions operationv3.go
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ func (o *OperationV3) ParseParamComment(commentLine string, astFile *ast.File) e
case OBJECT:
return fmt.Errorf("%s is not supported type for %s", refType, paramType)
}
case "query", "formData":
case "query":
switch objectType {
case ARRAY:
if !IsPrimitiveType(refType) && !(refType == "file" && paramType == "formData") {
Expand Down Expand Up @@ -417,7 +417,7 @@ func (o *OperationV3) ParseParamComment(commentLine string, astFile *ast.File) e

return nil
}
case "body":
case "body", "formData":
if objectType == PRIMITIVE {
schema := PrimitiveSchemaV3(refType)

Expand All @@ -426,7 +426,7 @@ func (o *OperationV3) ParseParamComment(commentLine string, astFile *ast.File) e
return err
}

o.fillRequestBody(schema, required, description, true)
o.fillRequestBody(schema, required, description, true, paramType == "formData")

return nil

Expand All @@ -442,7 +442,7 @@ func (o *OperationV3) ParseParamComment(commentLine string, astFile *ast.File) e
return err
}

o.fillRequestBody(schema, required, description, false)
o.fillRequestBody(schema, required, description, false, paramType == "formData")

return nil

Expand All @@ -464,13 +464,15 @@ func (o *OperationV3) ParseParamComment(commentLine string, astFile *ast.File) e
return nil
}

func (o *OperationV3) fillRequestBody(schema *spec.RefOrSpec[spec.Schema], required bool, description string, primitive bool) {
func (o *OperationV3) fillRequestBody(schema *spec.RefOrSpec[spec.Schema], required bool, description string, primitive, formData bool) {
if o.RequestBody == nil {
o.RequestBody = spec.NewRequestBodySpec()
o.RequestBody.Spec.Spec.Content = make(map[string]*spec.Extendable[spec.MediaType])

if primitive {
if primitive && !formData {
o.RequestBody.Spec.Spec.Content["text/plain"] = spec.NewMediaType()
} else if formData {
o.RequestBody.Spec.Spec.Content["application/x-www-form-urlencoded"] = spec.NewMediaType()
} else {
o.RequestBody.Spec.Spec.Content["application/json"] = spec.NewMediaType()
}
Expand Down
42 changes: 19 additions & 23 deletions operationv3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -773,7 +773,7 @@ func TestOperation_ParseParamCommentV3(t *testing.T) {

t.Run("integer", func(t *testing.T) {
t.Parallel()
for _, paramType := range []string{"header", "path", "query", "formData"} {
for _, paramType := range []string{"header", "path", "query"} {
t.Run(paramType, func(t *testing.T) {
o := NewOperationV3(New())
err := o.ParseComment(`@Param some_id `+paramType+` int true "Some ID"`, nil)
Expand Down Expand Up @@ -808,7 +808,7 @@ func TestOperation_ParseParamCommentV3(t *testing.T) {

t.Run("string", func(t *testing.T) {
t.Parallel()
for _, paramType := range []string{"header", "path", "query", "formData"} {
for _, paramType := range []string{"header", "path", "query"} {
t.Run(paramType, func(t *testing.T) {
o := NewOperationV3(New())
err := o.ParseComment(`@Param some_string `+paramType+` string true "Some String"`, nil)
Expand Down Expand Up @@ -842,7 +842,7 @@ func TestOperation_ParseParamCommentV3(t *testing.T) {

t.Run("object", func(t *testing.T) {
t.Parallel()
for _, paramType := range []string{"header", "path", "query", "formData"} {
for _, paramType := range []string{"header", "path", "query"} {
t.Run(paramType, func(t *testing.T) {
assert.Error(t,
NewOperationV3(New()).
Expand Down Expand Up @@ -1108,18 +1108,17 @@ func TestParseParamCommentByFormDataTypeV3(t *testing.T) {
err := operation.ParseComment(comment, nil)
assert.NoError(t, err)

assert.Len(t, operation.Parameters, 1)
assert.Len(t, operation.Parameters, 0)
assert.NotNil(t, operation.RequestBody)

parameters := operation.Operation.Parameters
assert.NotNil(t, parameters)
requestBody := operation.RequestBody
assert.True(t, requestBody.Spec.Spec.Required)
assert.Equal(t, "this is a test file", requestBody.Spec.Spec.Description)
assert.NotNil(t, requestBody)

parameterSpec := parameters[0].Spec.Spec
assert.NotNil(t, parameterSpec)
assert.Equal(t, "this is a test file", parameterSpec.Description)
assert.Equal(t, "file", parameterSpec.Name)
assert.True(t, parameterSpec.Required)
assert.Equal(t, "formData", parameterSpec.In)
assert.Equal(t, typeFile, parameterSpec.Schema.Spec.Type)
requestBodySpec := requestBody.Spec.Spec
assert.NotNil(t, requestBodySpec)
assert.Equal(t, typeFile, requestBodySpec.Content["application/x-www-form-urlencoded"].Spec.Schema.Spec.Type)
}

func TestParseParamCommentByFormDataTypeUint64V3(t *testing.T) {
Expand All @@ -1131,18 +1130,15 @@ func TestParseParamCommentByFormDataTypeUint64V3(t *testing.T) {
err := operation.ParseComment(comment, nil)
assert.NoError(t, err)

assert.Len(t, operation.Parameters, 1)
assert.Len(t, operation.Parameters, 0)

parameters := operation.Operation.Parameters
assert.NotNil(t, parameters)
requestBody := operation.RequestBody
assert.NotNil(t, requestBody)
assert.Equal(t, "this is a test file", requestBody.Spec.Spec.Description)

parameterSpec := parameters[0].Spec.Spec
assert.NotNil(t, parameterSpec)
assert.Equal(t, "this is a test file", parameterSpec.Description)
assert.Equal(t, "file", parameterSpec.Name)
assert.True(t, parameterSpec.Required)
assert.Equal(t, "formData", parameterSpec.In)
assert.Equal(t, typeInteger, parameterSpec.Schema.Spec.Type)
requestBodySpec := requestBody.Spec.Spec.Content["application/x-www-form-urlencoded"].Spec
assert.NotNil(t, requestBodySpec)
assert.Equal(t, typeInteger, requestBodySpec.Schema.Spec.Type)
}

func TestParseParamCommentByNotSupportedTypeV3(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2142,9 +2142,9 @@ func TestParseTypeOverrides(t *testing.T) {

searchDir := "testdata/global_override"
p := New(SetOverrides(map[string]string{
"github.com/swaggo/swag/testdata/global_override/types.Application": "string",
"github.com/swaggo/swag/testdata/global_override/types.Application2": "github.com/swaggo/swag/testdata/global_override/othertypes.Application",
"github.com/swaggo/swag/testdata/global_override/types.ShouldSkip": "",
"github.com/swaggo/swag/v2/testdata/global_override/types.Application": "string",
"github.com/swaggo/swag/v2/testdata/global_override/types.Application2": "github.com/swaggo/swag/v2/testdata/global_override/othertypes.Application",
"github.com/swaggo/swag/v2/testdata/global_override/types.ShouldSkip": "",
}))
err := p.ParseAPI(searchDir, mainAPIFile, defaultParseDepth)
assert.NoError(t, err)
Expand Down
5 changes: 4 additions & 1 deletion parserv3_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ func TestParseSimpleApiV3(t *testing.T) {
assert.NoError(t, err)

paths := p.openAPI.Paths.Spec.Paths
assert.Equal(t, 14, len(paths))
assert.Equal(t, 15, len(paths))

path := paths["/testapi/get-string-by-int/{some_id}"].Spec.Spec.Get.Spec
assert.Equal(t, "get string by ID", path.Description)
Expand All @@ -365,5 +365,8 @@ func TestParseSimpleApiV3(t *testing.T) {
response := path.Responses.Spec.Response["200"]
assert.Equal(t, "ok", response.Spec.Spec.Description)

path = paths["/FormData"].Spec.Spec.Post.Spec
assert.NotNil(t, path)
assert.NotNil(t, path.RequestBody)
//TODO add asserts
}
16 changes: 8 additions & 8 deletions testdata/conflict_name/expected.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_swaggo_swag_testdata_conflict_name_model.ErrorsResponse"
"$ref": "#/definitions/github_com_swaggo_swag_v2_testdata_conflict_name_model.ErrorsResponse"
}
}
}
Expand All @@ -47,39 +47,39 @@
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_swaggo_swag_testdata_conflict_name_model2.ErrorsResponse"
"$ref": "#/definitions/github_com_swaggo_swag_v2_testdata_conflict_name_model2.ErrorsResponse"
}
}
}
}
}
},
"definitions": {
"github_com_swaggo_swag_testdata_conflict_name_model.ErrorsResponse": {
"github_com_swaggo_swag_v2_testdata_conflict_name_model.ErrorsResponse": {
"type": "object",
"properties": {
"newTime": {
"$ref": "#/definitions/model.MyPayload"
}
}
},
"github_com_swaggo_swag_testdata_conflict_name_model.MyStruct": {
"github_com_swaggo_swag_v2_testdata_conflict_name_model.MyStruct": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
"github_com_swaggo_swag_testdata_conflict_name_model2.ErrorsResponse": {
"github_com_swaggo_swag_v2_testdata_conflict_name_model2.ErrorsResponse": {
"type": "object",
"properties": {
"newTime": {
"$ref": "#/definitions/model.MyPayload2"
}
}
},
"github_com_swaggo_swag_testdata_conflict_name_model2.MyStruct": {
"github_com_swaggo_swag_v2_testdata_conflict_name_model2.MyStruct": {
"type": "object",
"properties": {
"name": {
Expand All @@ -91,7 +91,7 @@
"type": "object",
"properties": {
"my": {
"$ref": "#/definitions/github_com_swaggo_swag_testdata_conflict_name_model.MyStruct"
"$ref": "#/definitions/github_com_swaggo_swag_v2_testdata_conflict_name_model.MyStruct"
},
"name": {
"type": "string"
Expand All @@ -102,7 +102,7 @@
"type": "object",
"properties": {
"my": {
"$ref": "#/definitions/github_com_swaggo_swag_testdata_conflict_name_model2.MyStruct"
"$ref": "#/definitions/github_com_swaggo_swag_v2_testdata_conflict_name_model2.MyStruct"
},
"name": {
"type": "string"
Expand Down
Loading