func (rest *TestSpaceIterationREST) TestListIterationsBySpace() { t := rest.T() resource.Require(t, resource.Database) var spaceID uuid.UUID application.Transactional(rest.db, func(app application.Application) error { repo := app.Iterations() newSpace := space.Space{ Name: "Test 1", } p, err := app.Spaces().Create(context.Background(), &newSpace) if err != nil { t.Error(err) } spaceID = p.ID for i := 0; i < 3; i++ { start := time.Now() end := start.Add(time.Hour * (24 * 8 * 3)) name := "Sprint #2" + strconv.Itoa(i) i := iteration.Iteration{ Name: name, SpaceID: spaceID, StartAt: &start, EndAt: &end, } repo.Create(context.Background(), &i) } return nil }) svc, ctrl := rest.UnSecuredController() _, cs := test.ListSpaceIterationsOK(t, svc.Context, svc, ctrl, spaceID.String()) assert.Len(t, cs.Data, 3) for _, iterationItem := range cs.Data { subString := fmt.Sprintf("?filter[iteration]=%s", iterationItem.ID.String()) require.Contains(t, *iterationItem.Relationships.Workitems.Links.Related, subString) assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["closed"]) } }
func (rest *TestSpaceIterationREST) TestWICountsWithIterationListBySpace() { t := rest.T() resource.Require(t, resource.Database) // create seed data spaceRepo := space.NewRepository(rest.DB) spaceInstance := space.Space{ Name: "Testing space", } spaceRepo.Create(context.Background(), &spaceInstance) fmt.Println("space id = ", spaceInstance.ID) assert.NotEqual(rest.T(), uuid.UUID{}, spaceInstance.ID) iterationRepo := iteration.NewIterationRepository(rest.DB) iteration1 := iteration.Iteration{ Name: "Sprint 1", SpaceID: spaceInstance.ID, } iterationRepo.Create(context.Background(), &iteration1) fmt.Println("iteration1 id = ", iteration1.ID) assert.NotEqual(rest.T(), uuid.UUID{}, iteration1.ID) iteration2 := iteration.Iteration{ Name: "Sprint 2", SpaceID: spaceInstance.ID, } iterationRepo.Create(context.Background(), &iteration2) fmt.Println("iteration2 id = ", iteration2.ID) assert.NotEqual(rest.T(), uuid.UUID{}, iteration2.ID) wirepo := workitem.NewWorkItemRepository(rest.DB) for i := 0; i < 3; i++ { wirepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("New issue #%d", i), workitem.SystemState: workitem.SystemStateNew, workitem.SystemIteration: iteration1.ID.String(), }, "xx") } for i := 0; i < 2; i++ { wirepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("Closed issue #%d", i), workitem.SystemState: workitem.SystemStateClosed, workitem.SystemIteration: iteration1.ID.String(), }, "xx") } svc, ctrl := rest.UnSecuredController() _, cs := test.ListSpaceIterationsOK(t, svc.Context, svc, ctrl, spaceInstance.ID.String()) assert.Len(t, cs.Data, 2) for _, iterationItem := range cs.Data { if iterationItem.ID.String() == iteration1.ID.String() { assert.Equal(t, 5, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 2, iterationItem.Relationships.Workitems.Meta["closed"]) } else if iterationItem.ID.String() == iteration2.ID.String() { assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["closed"]) } } // seed 5 WI to iteration2 for i := 0; i < 5; i++ { wirepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("New issue #%d", i), workitem.SystemState: workitem.SystemStateNew, workitem.SystemIteration: iteration2.ID.String(), }, "xx") } _, cs = test.ListSpaceIterationsOK(t, svc.Context, svc, ctrl, spaceInstance.ID.String()) assert.Len(t, cs.Data, 2) for _, iterationItem := range cs.Data { if iterationItem.ID.String() == iteration1.ID.String() { assert.Equal(t, 5, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 2, iterationItem.Relationships.Workitems.Meta["closed"]) } else if iterationItem.ID.String() == iteration2.ID.String() { assert.Equal(t, 5, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["closed"]) } } }