main

mattermost/focalboard

Last updated at: 29/12/2023 09:49

card_test.go

TLDR

This file contains a test for the Block2Card function in the model package. The function converts a block object into a card object. The test ensures that the conversion is done correctly.

Methods

TestBlock2Card

This method is the main test method in the file. It tests the Block2Card function to ensure that it correctly converts a block object into a card object.

Classes

None

package model

import (
	"encoding/json"
	"testing"

	"github.com/mattermost/focalboard/server/utils"
	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)

func TestBlock2Card(t *testing.T) {
	blockID := utils.NewID(utils.IDTypeCard)
	boardID := utils.NewID(utils.IDTypeBoard)
	userID := utils.NewID(utils.IDTypeUser)
	now := utils.GetMillis()

	var fields map[string]any
	err := json.Unmarshal([]byte(sampleBlockFieldsJSON), &fields)
	require.NoError(t, err)

	block := &Block{
		ID:         blockID,
		ParentID:   boardID,
		CreatedBy:  userID,
		ModifiedBy: userID,
		Schema:     1,
		Type:       TypeCard,
		Title:      "My card title",
		Fields:     fields,
		CreateAt:   now,
		UpdateAt:   now,
		DeleteAt:   0,
		BoardID:    boardID,
	}

	t.Run("Good block", func(t *testing.T) {
		card, err := Block2Card(block)
		require.NoError(t, err)

		assert.Equal(t, block.ID, card.ID)
		assert.Equal(t, []string{"acdxa8r8aht85pyoeuj1ed7tu8w", "73urm1huoupd4idzkdq5yaeuyay", "ay6sogs9owtd9xbyn49qt3395ko"}, card.ContentOrder)
		assert.EqualValues(t, fields["icon"], card.Icon)
		assert.EqualValues(t, fields["isTemplate"], card.IsTemplate)
		assert.EqualValues(t, fields["properties"], card.Properties)
	})

	t.Run("Not a card", func(t *testing.T) {
		blockNotCard := &Block{}

		card, err := Block2Card(blockNotCard)
		require.Error(t, err)
		require.Nil(t, card)
	})
}

const sampleBlockFieldsJSON = `
{
	"contentOrder":[
	   "acdxa8r8aht85pyoeuj1ed7tu8w",
	   "73urm1huoupd4idzkdq5yaeuyay",
	   "ay6sogs9owtd9xbyn49qt3395ko"
	],
	"icon":"🎨",
	"isTemplate":false,
	"properties":{
	   "aa7swu9zz3ofdkcna3h867cum4y":"212-444-1234",
	   "af6fcbb8-ca56-4b73-83eb-37437b9a667d":"77c539af-309c-4db1-8329-d20ef7e9eacd",
	   "aiwt9ibi8jjrf9hzi1xzk8no8mo":"foo",
	   "aj65h4s6ghr6wgh3bnhqbzzmiaa":"77",
	   "ajy6xbebzopojaenbnmfpgtdwso":"{\"from\":1660046400000}",
	   "amc8wnk1xqj54rymkoqffhtw7ie":"zhqsoeqs1pg9i8gk81k9ryy83h",
	   "aooz77t119y7xtfmoyeiy4up75c":"someone@example.com",
	   "auskzaoaccsn55icuwarf4o3tfe":"https://www.google.com",
	   "aydsk41h6cs1z7nmghaw16jqcia":[
		  "aw565znut6zphbxqhbwyawiuggy",
		  "aefd3pxciomrkur4rc6smg1usoc",
		  "a6c96kwrqaskbtochq9wunmzweh",
		  "atyexeuq993fwwb84bxoqixxqqr"
	   ],
	   "d6b1249b-bc18-45fc-889e-bec48fce80ef":"9a090e33-b110-4268-8909-132c5002c90e",
	   "d9725d14-d5a8-48e5-8de1-6f8c004a9680":"3245a32d-f688-463b-87f4-8e7142c1b397"
	}
}`