diff --git a/.github/workflows/go-coverage.yml b/.github/workflows/go-coverage.yml index 66754d3..bf39a0d 100644 --- a/.github/workflows/go-coverage.yml +++ b/.github/workflows/go-coverage.yml @@ -41,35 +41,8 @@ jobs: with: go-version: "1.24.2" - - name: Start Docker Compose - run: | - docker compose -f ./.script/docker-compose.yaml -p myapp up -d - - - name: Test for MySQL - run: | - # 等待MySQL服务就绪(最多尝试30次,每次等待2秒) - timeout=60 - elapsed=0 - until docker exec myapp-mysql8-1 mysqladmin -uroot -proot -h127.0.0.1 ping; do - sleep 2 - elapsed=$((elapsed + 2)) - if [ $elapsed -ge $timeout ]; then - echo "MySQL未在${timeout}秒内启动!" - exit 1 - fi - done - - # MySQL就绪后执行命令 - docker exec myapp-mysql8-1 mysql -uroot -proot -h127.0.0.1 -e "SHOW DATABASES;" - - - name: Build - run: go build -v ./... - - name: Test - run: go test -race -coverprofile=cover.out -v ./... - - - name: Stop Docker Compose - run: docker compose -f ./.script/docker-compose.yaml down + run: make e2e - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5 diff --git a/.github/workflows/go-fmt.yml b/.github/workflows/go-fmt.yml index 15b6acf..fea5abb 100644 --- a/.github/workflows/go-fmt.yml +++ b/.github/workflows/go-fmt.yml @@ -39,7 +39,7 @@ jobs: - name: Check run: | - make check + make fmt if [ -n "$(git status --porcelain)" ]; then echo >&2 "错误: 请在本地运行命令'make check'后再提交." exit 1 diff --git a/.script/docker-compose.yaml b/.script/docker-compose.yaml index 8a2b789..bf5cdc8 100644 --- a/.script/docker-compose.yaml +++ b/.script/docker-compose.yaml @@ -27,7 +27,7 @@ services: # 注意这里我映射为了 13306 端口 - "13306:3306" redis: - image: 'bitnami/redis:latest' + image: 'bitnami/redis:8.0.3' environment: - ALLOW_EMPTY_PASSWORD=yes ports: diff --git a/Makefile b/Makefile index 90f8698..8fc03d1 100644 --- a/Makefile +++ b/Makefile @@ -16,9 +16,7 @@ endif .PHONY: e2e e2e: @docker compose -f ./.script/docker-compose.yaml up -d - @echo "等待 10 秒确保容器启动完成..." - @$(SLEEP_CMD) # 根据系统动态选择命令 - @go test -race -v -failfast ./... + @go test -race -v -failfast -coverprofile=cover.out ./... @docker compose -f ./.script/docker-compose.yaml down diff --git a/README.md b/README.md index d34ec4c..fb47e78 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # ai-gateway-go AI 网关,一个和业务整合在一起的 AI 网关,并不是一个纯粹一个AI 网关。 +## License 说明 +- 并不需要在每个文件里面都添加 license 说明,根目录保留一个就可以。 ## 撰写测试 - 每个测试都必须是可以独立运行的。 - 使用 TestSuite 的形态来组织。 diff --git a/internal/admin/biz_config_test.go b/internal/admin/biz_config_test.go deleted file mode 100644 index 6778e03..0000000 --- a/internal/admin/biz_config_test.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2025 ecodeclub -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package admin - -import ( - "bytes" - "net/http" - "net/http/httptest" - "testing" - "time" - - "github.com/ecodeclub/ai-gateway-go/internal/domain" - "github.com/ecodeclub/ai-gateway-go/internal/service" - "github.com/ecodeclub/ai-gateway-go/internal/service/mocks" - "github.com/gin-gonic/gin" - "github.com/golang-jwt/jwt/v5" - "github.com/stretchr/testify/assert" - gomock "go.uber.org/mock/gomock" -) - -func fakeAuthMiddleware() gin.HandlerFunc { - return func(c *gin.Context) { - // 获取JWT Bearer令牌 - tokenString := c.GetHeader("Authorization") - if tokenString == "" { - c.JSON(http.StatusUnauthorized, "missing token") - c.Abort() - return - } - c.Next() - } -} - -func generateJWT(secret string) (string, error) { - token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ - "iat": time.Now().Unix(), - "exp": time.Now().Add(1 * time.Hour).Unix(), - "sub": "some_user_id", - }) - return token.SignedString([]byte(secret)) -} - -func TestBizConfigHandler_Create(t *testing.T) { - const createUrl = "/api/v1/biz-configs/create" - secret := "VGhpcyBpcyBhIHNlY3JldCB0aGF0IG5vYm9keSBjYW4gZ3Vlc3M=" // 你的 Secret - - // 生成 JWT token - token, err := generateJWT(secret) - if err != nil { - t.Fatalf("failed to generate JWT: %v", err) - } - - testCases := []struct { - name string - mock func(ctrl *gomock.Controller) service.BizConfigService - reqBuilder func(t *testing.T) *http.Request - wantCode int - wantBody string - }{ - { - name: "创建成功", - mock: func(ctrl *gomock.Controller) service.BizConfigService { - svc := mocks.NewMockBizConfigService(ctrl) - svc.EXPECT().Create(gomock.Any(), gomock.Any()). - Return(domain.BizConfig{ID: 1}, nil) - return svc - }, - reqBuilder: func(t *testing.T) *http.Request { - body := bytes.NewBuffer([]byte(`{ - "biz_id": 123, - "key": "some_config_key", - "value": "some_value" - }`)) - req, err := http.NewRequest(http.MethodPost, createUrl, body) - req.Header.Set("Content-Type", "application/json") - if err != nil { - t.Fatal(err) - } - return req - }, - wantCode: 200, - wantBody: `{"code":0,"msg":"success","data":{"bizconfig":{"config":"","ctime":"0001-01-01 00:00:00","id":1,"owner_id":0,"owner_type":"","utime":"0001-01-01 00:00:00"}}}`, - }, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - infra.Init() - - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - svc := tc.mock(ctrl) - handler := NewBizConfigHandler(svc) - - server := gin.New() - server.Use(fakeAuthMiddleware()) - handler.PrivateRoutes(server) - - req := tc.reqBuilder(t) - // 将生成的 JWT Token 设置到 Authorization 头 - req.Header.Set("Authorization", "Bearer "+token) - - recorder := httptest.NewRecorder() - server.ServeHTTP(recorder, req) - - assert.Equal(t, tc.wantCode, recorder.Code) - // assert.Equal(t, tc.wantBody, recorder.Body.String()) - assert.JSONEq(t, tc.wantBody, recorder.Body.String()) - }) - } -} diff --git a/internal/test/init.go b/internal/test/init.go index fa78c45..bbc68f4 100644 --- a/internal/test/init.go +++ b/internal/test/init.go @@ -14,8 +14,23 @@ package test -import "github.com/gotomicro/ego" +import ( + "bytes" + _ "embed" + + "github.com/gotomicro/ego/core/econf" + "gopkg.in/yaml.v3" +) + +var ( + //go:embed config.yaml + cfg string +) func init() { - ego.New(ego.WithArguments([]string{"--config=config.yaml"})) + // 用这种形式来规避运行部分测试加载配置失败的问题 + err := econf.LoadFromReader(bytes.NewReader([]byte(cfg)), yaml.Unmarshal) + if err != nil { + panic(err) + } } diff --git a/internal/test/ioc/db.go b/internal/test/ioc/db.go index f7b3576..377e17d 100644 --- a/internal/test/ioc/db.go +++ b/internal/test/ioc/db.go @@ -15,10 +15,14 @@ package ioc import ( + "context" + "database/sql" "log" "os" + "time" "github.com/ecodeclub/ai-gateway-go/internal/repository/dao" + "github.com/ecodeclub/ekit/retry" "gorm.io/driver/mysql" "gorm.io/gorm" ) @@ -30,6 +34,7 @@ func InitDB() *gorm.DB { dsn = "root:root@tcp(localhost:13306)/ai_gateway_platform" } log.Print("测试 MySQL:" + dsn) + WaitForDBSetup(dsn) db, err := gorm.Open(mysql.Open(dsn)) if err != nil { panic(err) @@ -40,3 +45,31 @@ func InitDB() *gorm.DB { } return db } + +func WaitForDBSetup(dsn string) { + sqlDB, err := sql.Open("mysql", dsn) + if err != nil { + panic(err) + } + const maxInterval = 10 * time.Second + const maxRetries = 10 + strategy, err := retry.NewExponentialBackoffRetryStrategy(time.Second, maxInterval, maxRetries) + if err != nil { + panic(err) + } + + const timeout = 5 * time.Second + for { + ctx, cancel := context.WithTimeout(context.Background(), timeout) + err = sqlDB.PingContext(ctx) + cancel() + if err == nil { + break + } + next, ok := strategy.Next() + if !ok { + panic("WaitForDBSetup 重试失败......") + } + time.Sleep(next) + } +} diff --git a/internal/test/ioc/wire_gen.go b/internal/test/ioc/wire_gen.go new file mode 100644 index 0000000..903c6af --- /dev/null +++ b/internal/test/ioc/wire_gen.go @@ -0,0 +1,56 @@ +// Code generated by Wire. DO NOT EDIT. + +//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:build !wireinject +// +build !wireinject + +package ioc + +import ( + "github.com/ecodeclub/ai-gateway-go/cmd/platform/ioc" + "github.com/ecodeclub/ai-gateway-go/internal/admin" + "github.com/ecodeclub/ai-gateway-go/internal/grpc" + "github.com/ecodeclub/ai-gateway-go/internal/repository" + "github.com/ecodeclub/ai-gateway-go/internal/repository/cache" + "github.com/ecodeclub/ai-gateway-go/internal/repository/dao" + "github.com/ecodeclub/ai-gateway-go/internal/service" +) + +// Injectors from wire.go: + +// InitApp 总体上这里的 app 都是从 platform 下的 ioc 复制过来的 +// 只有一些需要 mock 的组件,才会作为参数传递进去 +func InitApp(to TestOnly) *TestApp { + db := InitDB() + chatDAO := dao.NewChatDAO(db) + cmdable := InitRedis() + chatCache := cache.NewChatCache(cmdable) + chatRepo := repository.NewChatRepo(chatDAO, chatCache) + handler := to.LLM + chatService := service.NewChatService(chatRepo, handler) + chatServer := grpc.NewChatServer(chatService) + component := ioc.InitGrpcServer(chatServer) + provider := InitSession() + mockHandler := admin.NewMockHandler() + invocationConfigDAO := dao.NewInvocationConfigDAO(db) + invocationConfigRepo := repository.NewInvocationConfigRepo(invocationConfigDAO) + bizConfigDAO := dao.NewBizConfigDAO(db) + bizConfigRepository := repository.NewBizConfigRepository(bizConfigDAO) + providerDao := dao.NewProviderDao(db) + providerCache := cache.NewProviderCache(cmdable) + providerRepo := repository.NewProviderRepo(providerDao, providerCache) + invocationConfigService := service.NewInvocationConfigService(invocationConfigRepo, bizConfigRepository, providerRepo) + invocationConfigHandler := admin.NewInvocationConfigHandler(invocationConfigService) + bizConfigService := service.NewBizConfigService(bizConfigRepository) + bizConfigHandler := admin.NewBizConfigHandler(bizConfigService) + providerService := ioc.InitProvider(providerRepo) + providerHandler := admin.NewProviderHandler(providerService) + eginComponent := InitGin(provider, mockHandler, invocationConfigHandler, bizConfigHandler, providerHandler) + testApp := &TestApp{ + GrpcSever: component, + GinServer: eginComponent, + DB: db, + Rdb: cmdable, + } + return testApp +} diff --git a/internal/test/mocks/mock_llm.go b/internal/test/mocks/mock_llm.go deleted file mode 100644 index 8d12eda..0000000 --- a/internal/test/mocks/mock_llm.go +++ /dev/null @@ -1,72 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: /Users/ian/Desktop/code/ai-gateway-go/internal/service/llm/llm.go -// -// Generated by this command: -// -// mockgen -source=/Users/ian/Desktop/code/ai-gateway-go/internal/service/llm/llm.go -destination=/Users/ian/Desktop/code/ai-gateway-go/internal/test/mocks/mock_llm.go -package=mocks -// - -// Package mocks is a generated GoMock package. -package mocks - -import ( - context "context" - reflect "reflect" - - domain "github.com/ecodeclub/ai-gateway-go/internal/domain" - gomock "go.uber.org/mock/gomock" -) - -// MockHandler is a mock of Handler interface. -type MockHandler struct { - ctrl *gomock.Controller - recorder *MockHandlerMockRecorder - isgomock struct{} -} - -// MockHandlerMockRecorder is the mock recorder for MockHandler. -type MockHandlerMockRecorder struct { - mock *MockHandler -} - -// NewMockHandler creates a new mock instance. -func NewMockHandler(ctrl *gomock.Controller) *MockHandler { - mock := &MockHandler{ctrl: ctrl} - mock.recorder = &MockHandlerMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockHandler) EXPECT() *MockHandlerMockRecorder { - return m.recorder -} - -// Handle mocks base method. -func (m *MockHandler) Handle(ctx context.Context, req []domain.Message) (domain.ChatResponse, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Handle", ctx, req) - ret0, _ := ret[0].(domain.ChatResponse) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Handle indicates an expected call of Handle. -func (mr *MockHandlerMockRecorder) Handle(ctx, req any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Handle", reflect.TypeOf((*MockHandler)(nil).Handle), ctx, req) -} - -// StreamHandle mocks base method. -func (m *MockHandler) StreamHandle(ctx context.Context, req []domain.Message) (chan domain.StreamEvent, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "StreamHandle", ctx, req) - ret0, _ := ret[0].(chan domain.StreamEvent) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// StreamHandle indicates an expected call of StreamHandle. -func (mr *MockHandlerMockRecorder) StreamHandle(ctx, req any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamHandle", reflect.TypeOf((*MockHandler)(nil).StreamHandle), ctx, req) -} diff --git a/internal/test/mocks/mock_resp.go b/internal/test/mocks/mock_resp.go deleted file mode 100644 index 4b67a6c..0000000 --- a/internal/test/mocks/mock_resp.go +++ /dev/null @@ -1,23 +0,0 @@ -package mocks - -import ( - "context" - - ai "github.com/ecodeclub/ai-gateway-go/api/proto/gen/chat/v1" -) - -type MockStreamServer struct { - ai.AIService_StreamServer - Ctx context.Context - Events []*ai.StreamEvent - err error -} - -func (m *MockStreamServer) Context() context.Context { - return m.Ctx -} - -func (m *MockStreamServer) Send(event *ai.StreamEvent) error { - m.Events = append(m.Events, event) - return m.err -} diff --git a/internal/test/mocks/session.mock.go b/internal/test/mocks/session.mock.go deleted file mode 100644 index bae7698..0000000 --- a/internal/test/mocks/session.mock.go +++ /dev/null @@ -1,111 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/ecodeclub/ginx/session (interfaces: Session) -// -// Generated by this command: -// -// mockgen -destination=internal/test/mocks/session.mock.go -package=mocks github.com/ecodeclub/ginx/session Session -// -// Package mocks is a generated GoMock package. -package mocks - -import ( - context "context" - reflect "reflect" - - ekit "github.com/ecodeclub/ekit" - session "github.com/ecodeclub/ginx/session" - gomock "go.uber.org/mock/gomock" -) - -// MockSession is a mock of Session interface. -type MockSession struct { - ctrl *gomock.Controller - recorder *MockSessionMockRecorder -} - -// MockSessionMockRecorder is the mock recorder for MockSession. -type MockSessionMockRecorder struct { - mock *MockSession -} - -// NewMockSession creates a new mock instance. -func NewMockSession(ctrl *gomock.Controller) *MockSession { - mock := &MockSession{ctrl: ctrl} - mock.recorder = &MockSessionMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockSession) EXPECT() *MockSessionMockRecorder { - return m.recorder -} - -// Claims mocks base method. -func (m *MockSession) Claims() session.Claims { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Claims") - ret0, _ := ret[0].(session.Claims) - return ret0 -} - -// Claims indicates an expected call of Claims. -func (mr *MockSessionMockRecorder) Claims() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Claims", reflect.TypeOf((*MockSession)(nil).Claims)) -} - -// Del mocks base method. -func (m *MockSession) Del(arg0 context.Context, arg1 string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Del", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// Del indicates an expected call of Del. -func (mr *MockSessionMockRecorder) Del(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Del", reflect.TypeOf((*MockSession)(nil).Del), arg0, arg1) -} - -// Destroy mocks base method. -func (m *MockSession) Destroy(arg0 context.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Destroy", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// Destroy indicates an expected call of Destroy. -func (mr *MockSessionMockRecorder) Destroy(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Destroy", reflect.TypeOf((*MockSession)(nil).Destroy), arg0) -} - -// Get mocks base method. -func (m *MockSession) Get(arg0 context.Context, arg1 string) ekit.AnyValue { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGraph", arg0, arg1) - ret0, _ := ret[0].(ekit.AnyValue) - return ret0 -} - -// Get indicates an expected call of Get. -func (mr *MockSessionMockRecorder) Get(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGraph", reflect.TypeOf((*MockSession)(nil).Get), arg0, arg1) -} - -// Set mocks base method. -func (m *MockSession) Set(arg0 context.Context, arg1 string, arg2 any) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Set", arg0, arg1, arg2) - ret0, _ := ret[0].(error) - return ret0 -} - -// Set indicates an expected call of Set. -func (mr *MockSessionMockRecorder) Set(arg0, arg1, arg2 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Set", reflect.TypeOf((*MockSession)(nil).Set), arg0, arg1, arg2) -} diff --git a/internal/test/mocks/session_provider.mock.go b/internal/test/mocks/session_provider.mock.go deleted file mode 100644 index 45d1536..0000000 --- a/internal/test/mocks/session_provider.mock.go +++ /dev/null @@ -1,112 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/ecodeclub/ginx/session (interfaces: Provider) -// -// Generated by this command: -// -// mockgen -destination=internal/test/mocks/session_provider.mock.go -package=mocks github.com/ecodeclub/ginx/session Provider -// -// Package mocks is a generated GoMock package. -package mocks - -import ( - reflect "reflect" - - gctx "github.com/ecodeclub/ginx/gctx" - session "github.com/ecodeclub/ginx/session" - gomock "go.uber.org/mock/gomock" -) - -// MockProvider is a mock of Provider interface. -type MockProvider struct { - ctrl *gomock.Controller - recorder *MockProviderMockRecorder -} - -// MockProviderMockRecorder is the mock recorder for MockProvider. -type MockProviderMockRecorder struct { - mock *MockProvider -} - -// NewMockProvider creates a new mock instance. -func NewMockProvider(ctrl *gomock.Controller) *MockProvider { - mock := &MockProvider{ctrl: ctrl} - mock.recorder = &MockProviderMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockProvider) EXPECT() *MockProviderMockRecorder { - return m.recorder -} - -// Destroy mocks base method. -func (m *MockProvider) Destroy(arg0 *gctx.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Destroy", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// Destroy indicates an expected call of Destroy. -func (mr *MockProviderMockRecorder) Destroy(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Destroy", reflect.TypeOf((*MockProvider)(nil).Destroy), arg0) -} - -// Get mocks base method. -func (m *MockProvider) Get(arg0 *gctx.Context) (session.Session, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetGraph", arg0) - ret0, _ := ret[0].(session.Session) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// Get indicates an expected call of Get. -func (mr *MockProviderMockRecorder) Get(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetGraph", reflect.TypeOf((*MockProvider)(nil).Get), arg0) -} - -// NewSession mocks base method. -func (m *MockProvider) NewSession(arg0 *gctx.Context, arg1 int64, arg2 map[string]string, arg3 map[string]any) (session.Session, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "NewSession", arg0, arg1, arg2, arg3) - ret0, _ := ret[0].(session.Session) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// NewSession indicates an expected call of NewSession. -func (mr *MockProviderMockRecorder) NewSession(arg0, arg1, arg2, arg3 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewSession", reflect.TypeOf((*MockProvider)(nil).NewSession), arg0, arg1, arg2, arg3) -} - -// RenewAccessToken mocks base method. -func (m *MockProvider) RenewAccessToken(arg0 *gctx.Context) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "RenewAccessToken", arg0) - ret0, _ := ret[0].(error) - return ret0 -} - -// RenewAccessToken indicates an expected call of RenewAccessToken. -func (mr *MockProviderMockRecorder) RenewAccessToken(arg0 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RenewAccessToken", reflect.TypeOf((*MockProvider)(nil).RenewAccessToken), arg0) -} - -// UpdateClaims mocks base method. -func (m *MockProvider) UpdateClaims(arg0 *gctx.Context, arg1 session.Claims) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateClaims", arg0, arg1) - ret0, _ := ret[0].(error) - return ret0 -} - -// UpdateClaims indicates an expected call of UpdateClaims. -func (mr *MockProviderMockRecorder) UpdateClaims(arg0, arg1 any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateClaims", reflect.TypeOf((*MockProvider)(nil).UpdateClaims), arg0, arg1) -}