main

mattermost/focalboard

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

work_template_test.go

TLDR

This file contains a single test function TestGetTemplatesForWorkTemplate that ensures the board templates required for the work template are present in the default templates.


TestGetTemplatesForWorkTemplate

This test function checks if the known templates required for the work template are available in the list of templates retrieved from the server. It performs the following steps:

  1. Initializes the test helper and sets up the basic test environment.
  2. Calls the InitTemplates method of the server's application to initialize the templates.
  3. Retrieves the list of templates for the team from the server using the GetTemplatesForTeam method of the client.
  4. Extracts the tracking template IDs from the retrieved template list.
  5. Compares the tracking template IDs with the known template IDs required for the work template.
  6. Asserts that all the known template IDs are present in the tracking template IDs.

package integrationtests

import (
	"testing"

	"github.com/stretchr/testify/require"
)

// This test is there to guarantee that the board templates needed for
// the work template are present in the default templates.
// If this fails, you might need to sync with the channels team.
func TestGetTemplatesForWorkTemplate(t *testing.T) {
	// map[name]trackingTemplateId
	knownInWorkTemplates := map[string]string{
		"Company Goals & OKRs":   "7ba22ccfdfac391d63dea5c4b8cde0de",
		"Competitive Analysis":   "06f4bff367a7c2126fab2380c9dec23c",
		"Content Calendar":       "c75fbd659d2258b5183af2236d176ab4",
		"Meeting Agenda ":        "54fcf9c610f0ac5e4c522c0657c90602",
		"Personal Goals ":        "7f32dc8d2ae008cfe56554e9363505cc",
		"Personal Tasls ":        "dfb70c146a4584b8a21837477c7b5431",
		"Project Tasks ":         "a4ec399ab4f2088b1051c3cdf1dde4c3",
		"Roadmap ":               "b728c6ca730e2cfc229741c5a4712b65",
		"Sales Pipeline CRM":     "ecc250bb7dff0fe02247f1110f097544",
		"Sprint Planner ":        "99b74e26d2f5d0a9b346d43c0a7bfb09",
		"Team Retrospective":     "e4f03181c4ced8edd4d53d33d569a086",
		"User Research Sessions": "6c345c7f50f6833f78b7d0f08ce450a3",
	}
	th := SetupTestHelper(t).InitBasic()
	defer th.TearDown()

	err := th.Server.App().InitTemplates()
	require.NoError(t, err, "InitTemplates should not fail")

	rBoards, resp := th.Client.GetTemplatesForTeam("0")
	th.CheckOK(resp)
	require.NotNil(t, rBoards)

	trackingTemplateIDs := []string{}
	for _, board := range rBoards {
		property, _ := board.GetPropertyString("trackingTemplateId")
		if property != "" {
			trackingTemplateIDs = append(trackingTemplateIDs, property)
		}
	}

	// make sure all known templates are in trackingTemplateIds
	for name, ttID := range knownInWorkTemplates {
		found := false
		for _, trackingTemplateID := range trackingTemplateIDs {
			if trackingTemplateID == ttID {
				found = true
				break
			}
		}
		require.True(t, found, "trackingTemplateId %s for %s not found", ttID, name)
	}
}