mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-05-13 06:20:24 +00:00
Enhances authorized integrations (#12261) with a cache of the remote OpenID Connect descriptor file and JSON Web Key Set (JWKS), improving runtime performance and reducing intermittent reliability risks. By default a 10 minute cache is used, configurable through `[authorized_integration].CACHE_TTL`. To mock the cache for testing, mockery code generation is added, and a previous manually generated mock for `AuthorizationReducer` was replaced with the code generation. ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. All work and communication must conform to Forgejo's [AI Agreement](https://codeberg.org/forgejo/governance/src/branch/main/AIAgreement.md). There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests for Go changes - I added test coverage for Go changes... - [x] in their respective `*_test.go` for unit tests. - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I ran... - [x] `make pr-go` before pushing ### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [x] I did not document these changes and I do not expect someone else to do it. ### Release notes - [ ] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change. - [ ] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change. - Authorized integrations are not yet exposed to end-users. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12275 Reviewed-by: Gusted <gusted@noreply.codeberg.org>
497 lines
11 KiB
Go
497 lines
11 KiB
Go
// Code generated by mockery; DO NOT EDIT.
|
|
// github.com/vektra/mockery
|
|
// template: testify
|
|
|
|
package cache
|
|
|
|
import (
|
|
"code.forgejo.org/go-chi/cache"
|
|
mock "github.com/stretchr/testify/mock"
|
|
)
|
|
|
|
// NewMockCache creates a new instance of MockCache. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
|
|
// The first argument is typically a *testing.T value.
|
|
func NewMockCache(t interface {
|
|
mock.TestingT
|
|
Cleanup(func())
|
|
},
|
|
) *MockCache {
|
|
mock := &MockCache{}
|
|
mock.Mock.Test(t)
|
|
|
|
t.Cleanup(func() { mock.AssertExpectations(t) })
|
|
|
|
return mock
|
|
}
|
|
|
|
// MockCache is an autogenerated mock type for the Cache type
|
|
type MockCache struct {
|
|
mock.Mock
|
|
}
|
|
|
|
type MockCache_Expecter struct {
|
|
mock *mock.Mock
|
|
}
|
|
|
|
func (_m *MockCache) EXPECT() *MockCache_Expecter {
|
|
return &MockCache_Expecter{mock: &_m.Mock}
|
|
}
|
|
|
|
// Decr provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Decr(key string) error {
|
|
ret := _mock.Called(key)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Decr")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func(string) error); ok {
|
|
r0 = returnFunc(key)
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Decr_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Decr'
|
|
type MockCache_Decr_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Decr is a helper method to define mock.On call
|
|
// - key string
|
|
func (_e *MockCache_Expecter) Decr(key any) *MockCache_Decr_Call {
|
|
return &MockCache_Decr_Call{Call: _e.mock.On("Decr", key)}
|
|
}
|
|
|
|
func (_c *MockCache_Decr_Call) Run(run func(key string)) *MockCache_Decr_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 string
|
|
if args[0] != nil {
|
|
arg0 = args[0].(string)
|
|
}
|
|
run(
|
|
arg0,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Decr_Call) Return(err error) *MockCache_Decr_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Decr_Call) RunAndReturn(run func(key string) error) *MockCache_Decr_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// Delete provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Delete(key string) error {
|
|
ret := _mock.Called(key)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Delete")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func(string) error); ok {
|
|
r0 = returnFunc(key)
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Delete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Delete'
|
|
type MockCache_Delete_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Delete is a helper method to define mock.On call
|
|
// - key string
|
|
func (_e *MockCache_Expecter) Delete(key any) *MockCache_Delete_Call {
|
|
return &MockCache_Delete_Call{Call: _e.mock.On("Delete", key)}
|
|
}
|
|
|
|
func (_c *MockCache_Delete_Call) Run(run func(key string)) *MockCache_Delete_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 string
|
|
if args[0] != nil {
|
|
arg0 = args[0].(string)
|
|
}
|
|
run(
|
|
arg0,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Delete_Call) Return(err error) *MockCache_Delete_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Delete_Call) RunAndReturn(run func(key string) error) *MockCache_Delete_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// Flush provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Flush() error {
|
|
ret := _mock.Called()
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Flush")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func() error); ok {
|
|
r0 = returnFunc()
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Flush_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Flush'
|
|
type MockCache_Flush_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Flush is a helper method to define mock.On call
|
|
func (_e *MockCache_Expecter) Flush() *MockCache_Flush_Call {
|
|
return &MockCache_Flush_Call{Call: _e.mock.On("Flush")}
|
|
}
|
|
|
|
func (_c *MockCache_Flush_Call) Run(run func()) *MockCache_Flush_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
run()
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Flush_Call) Return(err error) *MockCache_Flush_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Flush_Call) RunAndReturn(run func() error) *MockCache_Flush_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// Get provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Get(key string) any {
|
|
ret := _mock.Called(key)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Get")
|
|
}
|
|
|
|
var r0 any
|
|
if returnFunc, ok := ret.Get(0).(func(string) any); ok {
|
|
r0 = returnFunc(key)
|
|
} else {
|
|
if ret.Get(0) != nil {
|
|
r0 = ret.Get(0).(any)
|
|
}
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Get_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Get'
|
|
type MockCache_Get_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Get is a helper method to define mock.On call
|
|
// - key string
|
|
func (_e *MockCache_Expecter) Get(key any) *MockCache_Get_Call {
|
|
return &MockCache_Get_Call{Call: _e.mock.On("Get", key)}
|
|
}
|
|
|
|
func (_c *MockCache_Get_Call) Run(run func(key string)) *MockCache_Get_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 string
|
|
if args[0] != nil {
|
|
arg0 = args[0].(string)
|
|
}
|
|
run(
|
|
arg0,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Get_Call) Return(v any) *MockCache_Get_Call {
|
|
_c.Call.Return(v)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Get_Call) RunAndReturn(run func(key string) any) *MockCache_Get_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// Incr provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Incr(key string) error {
|
|
ret := _mock.Called(key)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Incr")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func(string) error); ok {
|
|
r0 = returnFunc(key)
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Incr_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Incr'
|
|
type MockCache_Incr_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Incr is a helper method to define mock.On call
|
|
// - key string
|
|
func (_e *MockCache_Expecter) Incr(key any) *MockCache_Incr_Call {
|
|
return &MockCache_Incr_Call{Call: _e.mock.On("Incr", key)}
|
|
}
|
|
|
|
func (_c *MockCache_Incr_Call) Run(run func(key string)) *MockCache_Incr_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 string
|
|
if args[0] != nil {
|
|
arg0 = args[0].(string)
|
|
}
|
|
run(
|
|
arg0,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Incr_Call) Return(err error) *MockCache_Incr_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Incr_Call) RunAndReturn(run func(key string) error) *MockCache_Incr_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// IsExist provides a mock function for the type MockCache
|
|
func (_mock *MockCache) IsExist(key string) bool {
|
|
ret := _mock.Called(key)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for IsExist")
|
|
}
|
|
|
|
var r0 bool
|
|
if returnFunc, ok := ret.Get(0).(func(string) bool); ok {
|
|
r0 = returnFunc(key)
|
|
} else {
|
|
r0 = ret.Get(0).(bool)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_IsExist_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsExist'
|
|
type MockCache_IsExist_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// IsExist is a helper method to define mock.On call
|
|
// - key string
|
|
func (_e *MockCache_Expecter) IsExist(key any) *MockCache_IsExist_Call {
|
|
return &MockCache_IsExist_Call{Call: _e.mock.On("IsExist", key)}
|
|
}
|
|
|
|
func (_c *MockCache_IsExist_Call) Run(run func(key string)) *MockCache_IsExist_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 string
|
|
if args[0] != nil {
|
|
arg0 = args[0].(string)
|
|
}
|
|
run(
|
|
arg0,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_IsExist_Call) Return(b bool) *MockCache_IsExist_Call {
|
|
_c.Call.Return(b)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_IsExist_Call) RunAndReturn(run func(key string) bool) *MockCache_IsExist_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// Ping provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Ping() error {
|
|
ret := _mock.Called()
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Ping")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func() error); ok {
|
|
r0 = returnFunc()
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Ping_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Ping'
|
|
type MockCache_Ping_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Ping is a helper method to define mock.On call
|
|
func (_e *MockCache_Expecter) Ping() *MockCache_Ping_Call {
|
|
return &MockCache_Ping_Call{Call: _e.mock.On("Ping")}
|
|
}
|
|
|
|
func (_c *MockCache_Ping_Call) Run(run func()) *MockCache_Ping_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
run()
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Ping_Call) Return(err error) *MockCache_Ping_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Ping_Call) RunAndReturn(run func() error) *MockCache_Ping_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// Put provides a mock function for the type MockCache
|
|
func (_mock *MockCache) Put(key string, val any, timeout int64) error {
|
|
ret := _mock.Called(key, val, timeout)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for Put")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func(string, any, int64) error); ok {
|
|
r0 = returnFunc(key, val, timeout)
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_Put_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Put'
|
|
type MockCache_Put_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// Put is a helper method to define mock.On call
|
|
// - key string
|
|
// - val any
|
|
// - timeout int64
|
|
func (_e *MockCache_Expecter) Put(key, val, timeout any) *MockCache_Put_Call {
|
|
return &MockCache_Put_Call{Call: _e.mock.On("Put", key, val, timeout)}
|
|
}
|
|
|
|
func (_c *MockCache_Put_Call) Run(run func(key string, val any, timeout int64)) *MockCache_Put_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 string
|
|
if args[0] != nil {
|
|
arg0 = args[0].(string)
|
|
}
|
|
var arg1 any
|
|
if args[1] != nil {
|
|
arg1 = args[1].(any)
|
|
}
|
|
var arg2 int64
|
|
if args[2] != nil {
|
|
arg2 = args[2].(int64)
|
|
}
|
|
run(
|
|
arg0,
|
|
arg1,
|
|
arg2,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Put_Call) Return(err error) *MockCache_Put_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_Put_Call) RunAndReturn(run func(key string, val any, timeout int64) error) *MockCache_Put_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|
|
|
|
// StartAndGC provides a mock function for the type MockCache
|
|
func (_mock *MockCache) StartAndGC(opt cache.Options) error {
|
|
ret := _mock.Called(opt)
|
|
|
|
if len(ret) == 0 {
|
|
panic("no return value specified for StartAndGC")
|
|
}
|
|
|
|
var r0 error
|
|
if returnFunc, ok := ret.Get(0).(func(cache.Options) error); ok {
|
|
r0 = returnFunc(opt)
|
|
} else {
|
|
r0 = ret.Error(0)
|
|
}
|
|
return r0
|
|
}
|
|
|
|
// MockCache_StartAndGC_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'StartAndGC'
|
|
type MockCache_StartAndGC_Call struct {
|
|
*mock.Call
|
|
}
|
|
|
|
// StartAndGC is a helper method to define mock.On call
|
|
// - opt cache.Options
|
|
func (_e *MockCache_Expecter) StartAndGC(opt any) *MockCache_StartAndGC_Call {
|
|
return &MockCache_StartAndGC_Call{Call: _e.mock.On("StartAndGC", opt)}
|
|
}
|
|
|
|
func (_c *MockCache_StartAndGC_Call) Run(run func(opt cache.Options)) *MockCache_StartAndGC_Call {
|
|
_c.Call.Run(func(args mock.Arguments) {
|
|
var arg0 cache.Options
|
|
if args[0] != nil {
|
|
arg0 = args[0].(cache.Options)
|
|
}
|
|
run(
|
|
arg0,
|
|
)
|
|
})
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_StartAndGC_Call) Return(err error) *MockCache_StartAndGC_Call {
|
|
_c.Call.Return(err)
|
|
return _c
|
|
}
|
|
|
|
func (_c *MockCache_StartAndGC_Call) RunAndReturn(run func(opt cache.Options) error) *MockCache_StartAndGC_Call {
|
|
_c.Call.Return(run)
|
|
return _c
|
|
}
|