Skip to content

Commit 286878d

Browse files
committed
update
1 parent 6a7ed0a commit 286878d

File tree

11 files changed

+78
-56
lines changed

11 files changed

+78
-56
lines changed

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ RUN sed 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' -i /etc/apk/repositories
3131

3232
WORKDIR /app
3333
COPY config config
34-
COPY assert assert
3534
COPY --from=builder /app/bin/server /app/server
3635

3736
ARG ENVIRONMENT=dev

Makefile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
build:
2+
go install github.com/gone-io/gonectr@latest
3+
go install go.uber.org/mock/mockgen@latest
4+
gonectr build -ldflags="-w -s" -tags musl -o bin/server ./cmd/server
5+
6+
run:
7+
go install github.com/gone-io/gonectr@latest
8+
go install go.uber.org/mock/mockgen@latest
9+
gonectr run ./cmd/server
10+
11+
12+
build-docker:
13+
docker compose build

docker-compose.yaml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
services:
22
api:
3-
image: registry.cn-qingdao.aliyuncs.com/initium/panda-park:${ENVIRONMENT}
4-
platform: linux/amd64
3+
image: web-server
4+
# platform: linux/amd64
55
restart: on-failure
66
build:
77
context: .
@@ -14,15 +14,3 @@ services:
1414
timeout: 3s
1515
retries: 3
1616
start_period: 20s
17-
18-
proxy:
19-
image: caddy
20-
restart: unless-stopped
21-
ports:
22-
- "80:80"
23-
- "443:443"
24-
volumes:
25-
- ./data/frontend/www:/usr/src/dist
26-
- ./data/log:/data/log
27-
- ./Caddyfile:/etc/caddy/Caddyfile
28-
- ./ssl:/data/caddy/certificates

go.mod

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@ module web
22

33
go 1.22.4
44

5-
require github.com/gone-io/gone v1.1.0-beta5
5+
require (
6+
github.com/gone-io/gone v1.1.0-beta5
7+
github.com/stretchr/testify v1.9.0
8+
go.uber.org/mock v0.4.0
9+
)
610

711
require (
812
github.com/andybalholm/brotli v1.1.0 // indirect
913
github.com/bytedance/sonic v1.10.2 // indirect
1014
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect
1115
github.com/chenzhuoyu/iasm v0.9.1 // indirect
1216
github.com/cloudflare/circl v1.4.0 // indirect
17+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
1318
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
1419
github.com/gin-contrib/sse v0.1.0 // indirect
1520
github.com/gin-gonic/gin v1.9.1 // indirect
@@ -38,6 +43,7 @@ require (
3843
github.com/modern-go/reflect2 v1.0.2 // indirect
3944
github.com/onsi/ginkgo/v2 v2.20.2 // indirect
4045
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
46+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
4147
github.com/quic-go/qpack v0.5.1 // indirect
4248
github.com/quic-go/quic-go v0.47.0 // indirect
4349
github.com/refraction-networking/utls v1.6.7 // indirect
@@ -47,7 +53,6 @@ require (
4753
github.com/syndtr/goleveldb v1.0.0 // indirect
4854
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
4955
github.com/ugorji/go/codec v1.2.12 // indirect
50-
go.uber.org/mock v0.4.0 // indirect
5156
go.uber.org/multierr v1.11.0 // indirect
5257
go.uber.org/zap v1.27.0 // indirect
5358
golang.org/x/arch v0.7.0 // indirect

internal/interface/entity/user.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ type LoginResult struct {
1616
}
1717

1818
type RegisterParam struct {
19-
UserName string `json:"username"`
19+
Username string `json:"username"`
2020
Password string `json:"password"`
2121
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
package service
2+
3+
type IDependent interface {
4+
DoSomething() error
5+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
11
package dependent
2+
3+
import "github.com/gone-io/gone"
4+
5+
type iDependent struct {
6+
gone.Flag
7+
}
8+
9+
func (s *iDependent) DoSomething() error {
10+
return nil
11+
}

internal/module/user/user.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,23 @@ package user
22

33
import (
44
"web/internal/interface/entity"
5+
"web/internal/interface/service"
56

67
"github.com/gone-io/gone"
78
)
89

910
type iUser struct {
1011
gone.Flag
12+
13+
iDep service.IDependent `gone:"*"`
1114
}
1215

1316
func (s *iUser) Register(registerParam *entity.RegisterParam) (*entity.LoginResult, error) {
17+
err := s.iDep.DoSomething()
18+
if err != nil {
19+
return nil, gone.ToError(err)
20+
}
21+
1422
return &entity.LoginResult{
1523
Token: "token",
1624
User: &entity.User{

internal/module/user/user_test.go

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,36 @@ package user
22

33
import (
44
"github.com/gone-io/gone"
5-
"reflect"
5+
"github.com/stretchr/testify/assert"
6+
"go.uber.org/mock/gomock"
67
"testing"
7-
"web/internal/interface/service"
8+
"web/internal/interface/entity"
9+
"web/internal/interface/mock"
810
)
911

1012
func Test_iUser_Register(t *testing.T) {
11-
type fields struct {
12-
Flag gone.Flag
13-
iDep service.IDependent
14-
}
15-
type args struct {
16-
registerParam *entity.RegisterParam
17-
}
18-
tests := []struct {
19-
name string
20-
fields fields
21-
args args
22-
want *entity.LoginResult
23-
wantErr bool
24-
}{
25-
// TODO: Add test cases.
26-
}
27-
for _, tt := range tests {
28-
t.Run(tt.name, func(t *testing.T) {
29-
s := &iUser{
30-
Flag: tt.fields.Flag,
31-
iDep: tt.fields.iDep,
32-
}
33-
got, err := s.Register(tt.args.registerParam)
34-
if (err != nil) != tt.wantErr {
35-
t.Errorf("Register() error = %v, wantErr %v", err, tt.wantErr)
36-
return
37-
}
38-
if !reflect.DeepEqual(got, tt.want) {
39-
t.Errorf("Register() got = %v, want %v", got, tt.want)
40-
}
13+
gone.RunTest(func(in struct {
14+
iUser *iUser `gone:"*"` //inject iUser for test
15+
iDependent *mock.MockIDependent `gone:"*"` //inject iDependent for mock
16+
}) {
17+
err := gone.ToError("err")
18+
in.iDependent.EXPECT().DoSomething().Return(err)
19+
20+
register, err2 := in.iUser.Register(&entity.RegisterParam{
21+
Username: "test",
22+
Password: "test",
4123
})
42-
}
24+
assert.Nil(t, register)
25+
assert.Equal(t, err2, err)
26+
}, func(cemetery gone.Cemetery) error {
27+
controller := gomock.NewController(t)
28+
29+
//load all mocked components
30+
mock.MockPriest(cemetery, controller)
31+
32+
//bury the tested component
33+
cemetery.Bury(&iUser{})
34+
35+
return nil
36+
})
4337
}

0 commit comments

Comments
 (0)