[MM-54730] Don't use old hardcoded rule for validating imported posts (#25823)

* don't use old hardcoded rule for validating imported posts

* fix http verb in doc

* Use client config

* Handle local mode

* E2E tests

* Enforce default if unable to use real limit

* Unit tests

* Fix tests

* Use model.PostMessageMaxRunesV2 as lower default

* Update direct post message length validation

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: streamer45 <cstcld91@gmail.com>
Этот коммит содержится в:
Julien Tant
2024-04-19 10:45:32 -07:00
коммит произвёл GitHub
родитель 389990ebe5
Коммит ffc08858cf
9 изменённых файлов: 404 добавлений и 16 удалений

Просмотреть файл

@@ -21,6 +21,8 @@ func (s *MmctlE2ETestSuite) TestImportUploadCmdF() {
serverPath := os.Getenv("MM_SERVER_PATH")
importName := "import_test.zip"
importFilePath := filepath.Join(serverPath, "tests", importName)
info, err := os.Stat(importFilePath)
s.Require().NoError(err)
s.Run("no permissions", func() {
printer.Clean()
@@ -70,7 +72,7 @@ func (s *MmctlE2ETestSuite) TestImportUploadCmdF() {
us, _, err := c.CreateUpload(context.TODO(), &model.UploadSession{
Filename: importName,
FileSize: 276051,
FileSize: info.Size(),
Type: model.UploadTypeImport,
UserId: userID,
})
@@ -366,3 +368,68 @@ func (s *MmctlE2ETestSuite) TestImportJobListCmdF() {
s.Require().Equal(job2, printer.GetLines()[1].(*model.Job))
})
}
func (s *MmctlE2ETestSuite) TestImportValidateCmdF() {
s.SetupTestHelper().InitBasic()
serverPath := os.Getenv("MM_SERVER_PATH")
importName := "import_test.zip"
importFilePath := filepath.Join(serverPath, "tests", importName)
s.RunForSystemAdminAndLocal("defaults", func(c client.Client) {
printer.Clean()
cmd := &cobra.Command{}
cmd.Flags().StringArray("team", nil, "")
cmd.Flags().Bool("check-missing-teams", false, "")
cmd.Flags().Bool("ignore-attachments", false, "")
cmd.Flags().Bool("check-server-duplicates", true, "")
err := importValidateCmdF(c, cmd, []string{importFilePath})
s.Require().Nil(err)
s.Require().Empty(printer.GetErrorLines())
s.Require().Equal(Statistics{
Teams: 2,
Channels: 24,
Users: 16,
Posts: 2001,
DirectChannels: 79,
DirectPosts: 901,
Attachments: 2,
}, printer.GetLines()[0].(Statistics))
s.Require().Equal(struct {
UnusedAttachments []string `json:"unused_attachments"`
}{
UnusedAttachments: []string{"data/test2.png"},
}, printer.GetLines()[1].(struct {
UnusedAttachments []string `json:"unused_attachments"`
}))
s.Require().Equal("Validation complete\n", printer.GetLines()[3])
})
s.RunForSystemAdminAndLocal("ignore attachments", func(c client.Client) {
printer.Clean()
cmd := &cobra.Command{}
cmd.Flags().StringArray("team", nil, "")
cmd.Flags().Bool("check-missing-teams", false, "")
cmd.Flags().Bool("ignore-attachments", true, "")
cmd.Flags().Bool("check-server-duplicates", true, "")
err := importValidateCmdF(c, cmd, []string{importFilePath})
s.Require().Nil(err)
s.Require().Empty(printer.GetErrorLines())
s.Require().Equal(Statistics{
Teams: 2,
Channels: 24,
Users: 16,
Posts: 2001,
DirectChannels: 79,
DirectPosts: 901,
Attachments: 0,
}, printer.GetLines()[0].(Statistics))
s.Require().Equal("Validation complete\n", printer.GetLines()[2])
})
}