mirror of
https://github.com/portainer/portainer.git
synced 2025-07-22 23:09:41 +02:00
feat(unit-testing): add a mock for the RequestBouncer EE-5610 (#9089)
This commit is contained in:
parent
933e764a13
commit
f7dd73b0f7
42 changed files with 147 additions and 126 deletions
|
@ -16,7 +16,8 @@ import (
|
|||
"github.com/portainer/portainer/api/adminmonitor"
|
||||
"github.com/portainer/portainer/api/demo"
|
||||
"github.com/portainer/portainer/api/http/offlinegate"
|
||||
i "github.com/portainer/portainer/api/internal/testhelpers"
|
||||
"github.com/portainer/portainer/api/internal/testhelpers"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
|
@ -49,10 +50,21 @@ func Test_restoreArchive_usingCombinationOfPasswords(t *testing.T) {
|
|||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
datastore := i.NewDatastore(i.WithUsers([]portainer.User{}), i.WithEdgeJobs([]portainer.EdgeJob{}))
|
||||
datastore := testhelpers.NewDatastore(
|
||||
testhelpers.WithUsers([]portainer.User{}),
|
||||
testhelpers.WithEdgeJobs([]portainer.EdgeJob{}),
|
||||
)
|
||||
adminMonitor := adminmonitor.New(time.Hour, datastore, context.Background())
|
||||
|
||||
h := NewHandler(nil, datastore, offlinegate.NewOfflineGate(), "./test_assets/handler_test", func() {}, adminMonitor, &demo.Service{})
|
||||
h := NewHandler(
|
||||
testhelpers.NewTestRequestBouncer(),
|
||||
datastore,
|
||||
offlinegate.NewOfflineGate(),
|
||||
"./test_assets/handler_test",
|
||||
func() {},
|
||||
adminMonitor,
|
||||
&demo.Service{},
|
||||
)
|
||||
|
||||
//backup
|
||||
archive := backup(t, h, test.backupPassword)
|
||||
|
@ -72,10 +84,20 @@ func Test_restoreArchive_shouldFailIfSystemWasAlreadyInitialized(t *testing.T) {
|
|||
admin := portainer.User{
|
||||
Role: portainer.AdministratorRole,
|
||||
}
|
||||
datastore := i.NewDatastore(i.WithUsers([]portainer.User{admin}), i.WithEdgeJobs([]portainer.EdgeJob{}))
|
||||
datastore := testhelpers.NewDatastore(
|
||||
testhelpers.WithUsers([]portainer.User{admin}),
|
||||
testhelpers.WithEdgeJobs([]portainer.EdgeJob{}),
|
||||
)
|
||||
adminMonitor := adminmonitor.New(time.Hour, datastore, context.Background())
|
||||
|
||||
h := NewHandler(nil, datastore, offlinegate.NewOfflineGate(), "./test_assets/handler_test", func() {}, adminMonitor, &demo.Service{})
|
||||
h := NewHandler(testhelpers.NewTestRequestBouncer(),
|
||||
datastore,
|
||||
offlinegate.NewOfflineGate(),
|
||||
"./test_assets/handler_test",
|
||||
func() {},
|
||||
adminMonitor,
|
||||
&demo.Service{},
|
||||
)
|
||||
|
||||
//backup
|
||||
archive := backup(t, h, "password")
|
||||
|
@ -106,11 +128,13 @@ func backup(t *testing.T, h *Handler, password string) []byte {
|
|||
|
||||
func prepareMultipartRequest(password string, file []byte) (*http.Request, error) {
|
||||
var body bytes.Buffer
|
||||
|
||||
w := multipart.NewWriter(&body)
|
||||
err := w.WriteField("password", password)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
fw, err := w.CreateFormFile("file", "filename")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue