// The SetupTest method will be run before every test in the suite. // SetupTest ensures that none of the work item links that we will create already exist. // It will also make sure that some resources that we rely on do exists. func (s *workItemLinkSuite) SetupTest() { s.cleanup() var err error // Create 3 work items (bug1, bug2, and feature1) bug1Payload := CreateWorkItem(workitem.SystemBug, "bug1") _, bug1 := test.CreateWorkitemCreated(s.T(), s.workItemSvc.Context, s.workItemSvc, s.workItemCtrl, bug1Payload) require.NotNil(s.T(), bug1) s.deleteWorkItems = append(s.deleteWorkItems, *bug1.Data.ID) s.bug1ID, err = strconv.ParseUint(*bug1.Data.ID, 10, 64) require.Nil(s.T(), err) fmt.Printf("Created bug1 with ID: %s\n", *bug1.Data.ID) bug2Payload := CreateWorkItem(workitem.SystemBug, "bug2") _, bug2 := test.CreateWorkitemCreated(s.T(), s.workItemSvc.Context, s.workItemSvc, s.workItemCtrl, bug2Payload) require.NotNil(s.T(), bug2) s.deleteWorkItems = append(s.deleteWorkItems, *bug2.Data.ID) s.bug2ID, err = strconv.ParseUint(*bug2.Data.ID, 10, 64) require.Nil(s.T(), err) fmt.Printf("Created bug2 with ID: %s\n", *bug2.Data.ID) bug3Payload := CreateWorkItem(workitem.SystemBug, "bug3") _, bug3 := test.CreateWorkitemCreated(s.T(), s.workItemSvc.Context, s.workItemSvc, s.workItemCtrl, bug3Payload) require.NotNil(s.T(), bug3) s.deleteWorkItems = append(s.deleteWorkItems, *bug3.Data.ID) s.bug3ID, err = strconv.ParseUint(*bug3.Data.ID, 10, 64) require.Nil(s.T(), err) fmt.Printf("Created bug3 with ID: %s\n", *bug3.Data.ID) feature1Payload := CreateWorkItem(workitem.SystemFeature, "feature1") _, feature1 := test.CreateWorkitemCreated(s.T(), s.workItemSvc.Context, s.workItemSvc, s.workItemCtrl, feature1Payload) require.NotNil(s.T(), feature1) s.deleteWorkItems = append(s.deleteWorkItems, *feature1.Data.ID) s.feature1ID, err = strconv.ParseUint(*feature1.Data.ID, 10, 64) require.Nil(s.T(), err) fmt.Printf("Created feature with ID: %s\n", *feature1.Data.ID) // Create a work item link category createLinkCategoryPayload := CreateWorkItemLinkCategory("test-user") _, workItemLinkCategory := test.CreateWorkItemLinkCategoryCreated(s.T(), nil, nil, s.workItemLinkCategoryCtrl, createLinkCategoryPayload) require.NotNil(s.T(), workItemLinkCategory) //s.deleteWorkItemLinkCategories = append(s.deleteWorkItemLinkCategories, *workItemLinkCategory.Data.ID) s.userLinkCategoryID = *workItemLinkCategory.Data.ID fmt.Printf("Created link category with ID: %s\n", *workItemLinkCategory.Data.ID) // Create work item link type payload createLinkTypePayload := CreateWorkItemLinkType("test-bug-blocker", workitem.SystemBug, workitem.SystemBug, s.userLinkCategoryID) _, workItemLinkType := test.CreateWorkItemLinkTypeCreated(s.T(), nil, nil, s.workItemLinkTypeCtrl, createLinkTypePayload) require.NotNil(s.T(), workItemLinkType) //s.deleteWorkItemLinkTypes = append(s.deleteWorkItemLinkTypes, *workItemLinkType.Data.ID) s.bugBlockerLinkTypeID = *workItemLinkType.Data.ID fmt.Printf("Created link type with ID: %s\n", *workItemLinkType.Data.ID) }
// TestAutoRegisterHostURL checks if client's host is neatly registered as a KnwonURL or not // Uses helper functions verifySearchByKnownURLs, searchByURL, getWICreatePayload func TestAutoRegisterHostURL(t *testing.T) { resource.Require(t, resource.Database) defer cleaner.DeleteCreatedEntities(DB)() service := getServiceAsUser() wiCtrl := NewWorkitemController(service, gormapplication.NewGormDB(DB)) // create a WI, search by `list view URL` of newly created item newWI := getWICreatePayload() _, wi := test.CreateWorkitemCreated(t, service.Context, service, wiCtrl, newWI) require.NotNil(t, wi) customHost := "own.domain.one" queryString := fmt.Sprintf("http://%s/work-item/list/detail/%s", customHost, *wi.Data.ID) verifySearchByKnownURLs(t, wi, customHost, queryString) // Search by `board view URL` of newly created item customHost2 := "own.domain.two" queryString2 := fmt.Sprintf("http://%s/work-item/board/detail/%s", customHost2, *wi.Data.ID) verifySearchByKnownURLs(t, wi, customHost2, queryString2) }
// createWorkItem creates a workitem that will be used to perform the comment operations during the tests. func (s *CommentsSuite) createWorkItem(identity account.Identity) string { createWorkitemPayload := app.CreateWorkitemPayload{ Data: &app.WorkItem2{ Type: APIStringTypeWorkItem, Attributes: map[string]interface{}{ workitem.SystemTitle: "work item title", workitem.SystemState: workitem.SystemStateNew}, Relationships: &app.WorkItemRelationships{ BaseType: &app.RelationBaseType{ Data: &app.BaseTypeData{ Type: "workitemtypes", ID: workitem.SystemBug, }, }, }, }, } userSvc, workitemCtrl, _, _ := s.securedControllers(identity) _, wi := test.CreateWorkitemCreated(s.T(), userSvc.Context, userSvc, workitemCtrl, &createWorkitemPayload) workitemId := *wi.Data.ID s.T().Log(fmt.Sprintf("Created workitem with id %v", workitemId)) return workitemId }