feat: adjust fiber route generation
This commit is contained in:
115
pkg/swag/golist_test.go
Normal file
115
pkg/swag/golist_test.go
Normal file
@@ -0,0 +1,115 @@
|
||||
package swag
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"go/build"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestListPackages(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
args []string
|
||||
searchDir string
|
||||
except error
|
||||
}{
|
||||
{
|
||||
name: "errorArgs",
|
||||
args: []string{"-abc"},
|
||||
searchDir: "testdata/golist",
|
||||
except: fmt.Errorf("exit status 2"),
|
||||
},
|
||||
{
|
||||
name: "normal",
|
||||
args: []string{"-deps"},
|
||||
searchDir: "testdata/golist",
|
||||
except: nil,
|
||||
},
|
||||
{
|
||||
name: "list error",
|
||||
args: []string{"-deps"},
|
||||
searchDir: "testdata/golist_not_exist",
|
||||
except: errors.New("searchDir not exist"),
|
||||
},
|
||||
}
|
||||
|
||||
for _, c := range cases {
|
||||
t.Run(c.name, func(t *testing.T) {
|
||||
_, err := listPackages(context.TODO(), c.searchDir, nil, c.args...)
|
||||
if c.except != nil {
|
||||
assert.NotNil(t, err)
|
||||
} else {
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetAllGoFileInfoFromDepsByList(t *testing.T) {
|
||||
p := New(ParseUsingGoList(true))
|
||||
pwd, err := os.Getwd()
|
||||
assert.NoError(t, err)
|
||||
cases := []struct {
|
||||
name string
|
||||
buildPackage *build.Package
|
||||
ignoreInternal bool
|
||||
except error
|
||||
}{
|
||||
{
|
||||
name: "normal",
|
||||
buildPackage: &build.Package{
|
||||
Name: "main",
|
||||
ImportPath: "git.ipao.vip/rogeecn/atomctl/pkg/swag/testdata/golist",
|
||||
Dir: "testdata/golist",
|
||||
GoFiles: []string{"main.go"},
|
||||
CgoFiles: []string{"api/api.go"},
|
||||
},
|
||||
except: nil,
|
||||
},
|
||||
{
|
||||
name: "ignore internal",
|
||||
buildPackage: &build.Package{
|
||||
Goroot: true,
|
||||
},
|
||||
ignoreInternal: true,
|
||||
except: nil,
|
||||
},
|
||||
{
|
||||
name: "gofiles error",
|
||||
buildPackage: &build.Package{
|
||||
Dir: "testdata/golist_not_exist",
|
||||
GoFiles: []string{"main.go"},
|
||||
},
|
||||
except: errors.New("file not exist"),
|
||||
},
|
||||
{
|
||||
name: "cgofiles error",
|
||||
buildPackage: &build.Package{
|
||||
Dir: "testdata/golist_not_exist",
|
||||
CgoFiles: []string{"main.go"},
|
||||
},
|
||||
except: errors.New("file not exist"),
|
||||
},
|
||||
}
|
||||
|
||||
for _, c := range cases {
|
||||
t.Run(c.name, func(t *testing.T) {
|
||||
if c.ignoreInternal {
|
||||
p.ParseInternal = false
|
||||
}
|
||||
c.buildPackage.Dir = filepath.Join(pwd, c.buildPackage.Dir)
|
||||
err := p.getAllGoFileInfoFromDepsByList(c.buildPackage, ParseModels)
|
||||
if c.except != nil {
|
||||
assert.NotNil(t, err)
|
||||
} else {
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user