Includes mmctl into the mono-repo (#23091)
* Includes mmctl into the mono-repo * Update to use the new public module paths * Adds docs check to the mmctl CI * Fix public utils import path * Tidy up modules * Fix linter * Update CI tasks to use the new file structure * Update CI references
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
412109b02e
Коммит
951456c780
98
server/cmd/mmctl/commands/mmctl_test.go
Обычный файл
98
server/cmd/mmctl/commands/mmctl_test.go
Обычный файл
@@ -0,0 +1,98 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
package commands
|
||||
|
||||
import (
|
||||
"github.com/mattermost/mattermost-server/server/v8/cmd/mmctl/client"
|
||||
"github.com/mattermost/mattermost-server/server/v8/cmd/mmctl/mocks"
|
||||
"github.com/mattermost/mattermost-server/server/v8/cmd/mmctl/printer"
|
||||
|
||||
"github.com/golang/mock/gomock"
|
||||
"github.com/stretchr/testify/suite"
|
||||
|
||||
"github.com/mattermost/mattermost-server/server/v8/channels/api4"
|
||||
)
|
||||
|
||||
var EnableEnterpriseTests string
|
||||
|
||||
type MmctlUnitTestSuite struct {
|
||||
suite.Suite
|
||||
mockCtrl *gomock.Controller
|
||||
client *mocks.MockClient
|
||||
}
|
||||
|
||||
func (s *MmctlUnitTestSuite) SetupTest() {
|
||||
printer.Clean()
|
||||
printer.SetFormat(printer.FormatJSON)
|
||||
|
||||
s.mockCtrl = gomock.NewController(s.T())
|
||||
s.client = mocks.NewMockClient(s.mockCtrl)
|
||||
}
|
||||
|
||||
func (s *MmctlUnitTestSuite) TearDownTest() {
|
||||
s.mockCtrl.Finish()
|
||||
}
|
||||
|
||||
type MmctlE2ETestSuite struct {
|
||||
suite.Suite
|
||||
th *api4.TestHelper
|
||||
}
|
||||
|
||||
func (s *MmctlE2ETestSuite) SetupTest() {
|
||||
printer.Clean()
|
||||
printer.SetFormat(printer.FormatJSON)
|
||||
}
|
||||
|
||||
func (s *MmctlE2ETestSuite) TearDownTest() {
|
||||
// if a test helper was used, we run the teardown and remove it
|
||||
// from the structure to avoid reusing the same helper between
|
||||
// tests
|
||||
if s.th != nil {
|
||||
s.th.TearDown()
|
||||
s.th = nil
|
||||
}
|
||||
}
|
||||
|
||||
func (s *MmctlE2ETestSuite) SetupTestHelper() *api4.TestHelper {
|
||||
s.th = api4.Setup(s.T())
|
||||
return s.th
|
||||
}
|
||||
|
||||
func (s *MmctlE2ETestSuite) SetupEnterpriseTestHelper() *api4.TestHelper {
|
||||
if EnableEnterpriseTests != "true" {
|
||||
s.T().SkipNow()
|
||||
}
|
||||
s.th = api4.SetupEnterprise(s.T())
|
||||
return s.th
|
||||
}
|
||||
|
||||
// RunForSystemAdminAndLocal runs a test function for both SystemAdmin
|
||||
// and Local clients. Several commands work in the same way when used
|
||||
// by a fully privileged user and through the local mode, so this
|
||||
// helper facilitates checking both
|
||||
func (s *MmctlE2ETestSuite) RunForSystemAdminAndLocal(testName string, fn func(client.Client)) {
|
||||
s.Run(testName+"/SystemAdminClient", func() {
|
||||
fn(s.th.SystemAdminClient)
|
||||
})
|
||||
|
||||
s.Run(testName+"/LocalClient", func() {
|
||||
fn(s.th.LocalClient)
|
||||
})
|
||||
}
|
||||
|
||||
// RunForAllClients runs a test function for all the clients
|
||||
// registered in the TestHelper
|
||||
func (s *MmctlE2ETestSuite) RunForAllClients(testName string, fn func(client.Client)) {
|
||||
s.Run(testName+"/Client", func() {
|
||||
fn(s.th.Client)
|
||||
})
|
||||
|
||||
s.Run(testName+"/SystemAdminClient", func() {
|
||||
fn(s.th.SystemAdminClient)
|
||||
})
|
||||
|
||||
s.Run(testName+"/LocalClient", func() {
|
||||
fn(s.th.LocalClient)
|
||||
})
|
||||
}
|
||||
Ссылка в новой задаче
Block a user