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:
- Initializes the test helper and sets up the basic test environment.
- Calls the
InitTemplates
method of the server's application to initialize the templates. - Retrieves the list of templates for the team from the server using the
GetTemplatesForTeam
method of the client. - Extracts the tracking template IDs from the retrieved template list.
- Compares the tracking template IDs with the known template IDs required for the work template.
- 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)
}
}