mirror of
https://gitee.com/johng/gf
synced 2026-06-06 16:21:40 +08:00
test(cmd/gf): enhance integration tests for gen service command (#4645)
## Summary - Add 2 new integration test cases for `gf gen service` command - `Test_Gen_Service_CamelCase`: tests `DstFileNameCase: "Camel"` option to generate service files with CamelCase naming - `Test_Gen_Service_PackagesFilter`: tests `Packages` filter option to generate service files only for specified packages ## Test Plan - [x] Run `go test -v -run "Test_Gen_Service" ./...` - all 5 tests pass (3 existing + 2 new)
This commit is contained in:
@ -156,3 +156,85 @@ func Test_Issue3835(t *testing.T) {
|
||||
t.Assert(gfile.GetContents(genFile), gfile.GetContents(expectFile))
|
||||
})
|
||||
}
|
||||
|
||||
func Test_Gen_Service_CamelCase(t *testing.T) {
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
var (
|
||||
path = gfile.Temp(guid.S())
|
||||
dstFolder = path + filepath.FromSlash("/service")
|
||||
srvFolder = gtest.DataPath("genservice", "logic")
|
||||
in = genservice.CGenServiceInput{
|
||||
SrcFolder: srvFolder,
|
||||
DstFolder: dstFolder,
|
||||
DstFileNameCase: "Camel",
|
||||
WatchFile: "",
|
||||
StPattern: "",
|
||||
Packages: nil,
|
||||
ImportPrefix: "",
|
||||
Clear: false,
|
||||
}
|
||||
)
|
||||
err := gutil.FillStructWithDefault(&in)
|
||||
t.AssertNil(err)
|
||||
|
||||
err = gfile.Mkdir(path)
|
||||
t.AssertNil(err)
|
||||
defer gfile.Remove(path)
|
||||
|
||||
// Clean up generated logic.go
|
||||
genSrv := srvFolder + filepath.FromSlash("/logic.go")
|
||||
defer gfile.Remove(genSrv)
|
||||
|
||||
_, err = genservice.CGenService{}.Service(ctx, in)
|
||||
t.AssertNil(err)
|
||||
|
||||
// Files should be in CamelCase
|
||||
files, err := gfile.ScanDir(dstFolder, "*.go", true)
|
||||
t.AssertNil(err)
|
||||
t.Assert(files, []string{
|
||||
dstFolder + filepath.FromSlash("/Article.go"),
|
||||
dstFolder + filepath.FromSlash("/Base.go"),
|
||||
dstFolder + filepath.FromSlash("/Delivery.go"),
|
||||
dstFolder + filepath.FromSlash("/User.go"),
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func Test_Gen_Service_PackagesFilter(t *testing.T) {
|
||||
gtest.C(t, func(t *gtest.T) {
|
||||
var (
|
||||
path = gfile.Temp(guid.S())
|
||||
dstFolder = path + filepath.FromSlash("/service")
|
||||
srvFolder = gtest.DataPath("genservice", "logic")
|
||||
in = genservice.CGenServiceInput{
|
||||
SrcFolder: srvFolder,
|
||||
DstFolder: dstFolder,
|
||||
DstFileNameCase: "Snake",
|
||||
WatchFile: "",
|
||||
StPattern: "",
|
||||
Packages: []string{"user"},
|
||||
ImportPrefix: "",
|
||||
Clear: false,
|
||||
}
|
||||
)
|
||||
err := gutil.FillStructWithDefault(&in)
|
||||
t.AssertNil(err)
|
||||
|
||||
err = gfile.Mkdir(path)
|
||||
t.AssertNil(err)
|
||||
defer gfile.Remove(path)
|
||||
|
||||
// Clean up generated logic.go
|
||||
genSrv := srvFolder + filepath.FromSlash("/logic.go")
|
||||
defer gfile.Remove(genSrv)
|
||||
|
||||
_, err = genservice.CGenService{}.Service(ctx, in)
|
||||
t.AssertNil(err)
|
||||
|
||||
// Only user.go should be generated
|
||||
files, err := gfile.ScanDir(dstFolder, "*.go", true)
|
||||
t.AssertNil(err)
|
||||
t.Assert(len(files), 1)
|
||||
t.Assert(files[0], dstFolder+filepath.FromSlash("/user.go"))
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user