Spaces:
Sleeping
Sleeping
| package integrationtests | |
| import ( | |
| "bytes" | |
| "testing" | |
| "github.com/mattermost/focalboard/server/model" | |
| "github.com/mattermost/focalboard/server/utils" | |
| "github.com/stretchr/testify/require" | |
| ) | |
| func TestExportBoard(t *testing.T) { | |
| t.Run("export single board", func(t *testing.T) { | |
| th := SetupTestHelper(t).InitBasic() | |
| defer th.TearDown() | |
| board := &model.Board{ | |
| ID: utils.NewID(utils.IDTypeBoard), | |
| TeamID: "test-team", | |
| Title: "Export Test Board", | |
| CreatedBy: th.GetUser1().ID, | |
| Type: model.BoardTypeOpen, | |
| CreateAt: utils.GetMillis(), | |
| UpdateAt: utils.GetMillis(), | |
| } | |
| block := &model.Block{ | |
| ID: utils.NewID(utils.IDTypeCard), | |
| ParentID: board.ID, | |
| Type: model.TypeCard, | |
| BoardID: board.ID, | |
| Title: "Test card # for export", | |
| CreatedBy: th.GetUser1().ID, | |
| CreateAt: utils.GetMillis(), | |
| UpdateAt: utils.GetMillis(), | |
| } | |
| babs := &model.BoardsAndBlocks{ | |
| Boards: []*model.Board{board}, | |
| Blocks: []*model.Block{block}, | |
| } | |
| babs, resp := th.Client.CreateBoardsAndBlocks(babs) | |
| th.CheckOK(resp) | |
| // export the board to an in-memory archive file | |
| buf, resp := th.Client.ExportBoardArchive(babs.Boards[0].ID) | |
| th.CheckOK(resp) | |
| require.NotNil(t, buf) | |
| // import the archive file to team 0 | |
| resp = th.Client.ImportArchive(model.GlobalTeamID, bytes.NewReader(buf)) | |
| th.CheckOK(resp) | |
| require.NoError(t, resp.Error) | |
| // check for test card | |
| boardsImported, err := th.Server.App().GetBoardsForUserAndTeam(th.GetUser1().ID, model.GlobalTeamID, true) | |
| require.NoError(t, err) | |
| require.Len(t, boardsImported, 1) | |
| boardImported := boardsImported[0] | |
| blocksImported, err := th.Server.App().GetBlocksForBoard(boardImported.ID) | |
| require.NoError(t, err) | |
| require.Len(t, blocksImported, 1) | |
| require.Equal(t, block.Title, blocksImported[0].Title) | |
| }) | |
| } | |