Skip to content

Commit

Permalink
ajout de tests pour addMember/removeMember taskforce
Browse files Browse the repository at this point in the history
  • Loading branch information
Christophe Ninucci committed Oct 9, 2022
1 parent 5690a8d commit ee198a8
Show file tree
Hide file tree
Showing 3 changed files with 190 additions and 5 deletions.
4 changes: 3 additions & 1 deletion errors_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ func TestErrors_UpstreamDeadlineExceeded(t *testing.T) {
errs = append(errs, err)
_, err = badWekan.EnsureUserIsBoardAdmin(ctx, "", "")
errs = append(errs, err)
_, err = badWekan.EnsureRuleExists(ctx, User{}, Board{}, BoardLabel{})
_, err = badWekan.EnsureRuleAddTaskforceMemberExists(ctx, User{}, Board{}, BoardLabel{})
errs = append(errs, err)
_, err = badWekan.EnsureRuleRemoveTaskforceMemberExists(ctx, User{}, Board{}, BoardLabel{})
errs = append(errs, err)
_, err = badWekan.EnsureUserIsActiveBoardMember(ctx, "", "")
errs = append(errs, err)
Expand Down
4 changes: 3 additions & 1 deletion init_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,9 @@ func TestWekan_AssertPrivileged(t *testing.T) {
errs = append(errs, err)
_, err = badAdminWekan.EnsureMemberOutOfCard(ctx, "", "")
errs = append(errs, err)
_, err = badAdminWekan.EnsureRuleExists(ctx, User{}, Board{}, BoardLabel{})
_, err = badAdminWekan.EnsureRuleAddTaskforceMemberExists(ctx, User{}, Board{}, BoardLabel{})
errs = append(errs, err)
_, err = badAdminWekan.EnsureRuleRemoveTaskforceMemberExists(ctx, User{}, Board{}, BoardLabel{})
errs = append(errs, err)
_, err = badAdminWekan.EnsureUserIsBoardAdmin(ctx, "", "")
errs = append(errs, err)
Expand Down
187 changes: 184 additions & 3 deletions rules_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/stretchr/testify/assert"
)

func TestRules_InsertRule_whenLabelDoesntExist(t *testing.T) {
func TestRules_InsertRuleAddMember_whenLabelDoesntExist(t *testing.T) {
ass := assert.New(t)
board, err := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
ass.Nil(err)
Expand All @@ -26,7 +26,23 @@ func TestRules_InsertRule_whenLabelDoesntExist(t *testing.T) {
ass.IsType(InsertEmptyRuleError{}, err)
}

func TestRulesInsertRule_whenUserIsNotMember(t *testing.T) {
func TestRules_InsertRuleRemoveMember_whenLabelDoesntExist(t *testing.T) {
ass := assert.New(t)
board, err := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
ass.Nil(err)
insertedUser := createTestUser(t, "")
ass.Nil(err)
_, err = wekan.EnsureUserIsActiveBoardMember(ctx, board.ID, insertedUser.ID)
ass.Nil(err)
updatedBoard, err := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
ass.Nil(err)
rule := updatedBoard.BuildRuleRemoveMember(insertedUser, "toto")
ass.Empty(rule)
err = wekan.InsertRule(ctx, rule)
ass.IsType(InsertEmptyRuleError{}, err)
}

func TestRulesInsertRuleAddMember_whenUserIsNotMember(t *testing.T) {
ass := assert.New(t)
board, err := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
ass.Nil(err)
Expand All @@ -39,7 +55,20 @@ func TestRulesInsertRule_whenUserIsNotMember(t *testing.T) {
ass.IsType(InsertEmptyRuleError{}, err)
}

func TestRules_InsertRule_whenEverythingsFine(t *testing.T) {
func TestRulesInsertRuleRemoveMember_whenUserIsNotMember(t *testing.T) {
ass := assert.New(t)
board, err := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
ass.Nil(err)
insertedUser := createTestUser(t, "")
ass.Nil(err)
ass.False(board.UserIsMember(insertedUser))
rule := board.BuildRuleRemoveMember(insertedUser, "toto")
ass.Empty(rule)
err = wekan.InsertRule(ctx, rule)
ass.IsType(InsertEmptyRuleError{}, err)
}

func TestRules_InsertAddMemberRule_whenEverythingsFine(t *testing.T) {
ass := assert.New(t)
// GIVEN
tableauSansEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
Expand Down Expand Up @@ -73,6 +102,158 @@ func TestRules_InsertRule_whenEverythingsFine(t *testing.T) {
ass.Equal(tableauAvecEtiquette.ID, insertedRule.Trigger.BoardID)
}

func TestRules_InsertRemoveMemberRule_whenEverythingsFine(t *testing.T) {
ass := assert.New(t)
// GIVEN
tableauSansEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
userDeTest := createTestUser(t, "")
wekan.EnsureUserIsActiveBoardMember(ctx, tableauSansEtiquette.ID, userDeTest.ID)

boardLabelId := BoardLabelID(newId6())
testBoardLabel := BoardLabel{
ID: boardLabelId,
Name: BoardLabelName(t.Name()),
Color: "blue",
}
wekan.InsertBoardLabel(ctx, tableauSansEtiquette, testBoardLabel)
tableauAvecEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")

regleAAjouter := tableauAvecEtiquette.BuildRuleRemoveMember(userDeTest, BoardLabelName(t.Name()))
ass.NotEmpty(regleAAjouter)

// WHEN
err := wekan.InsertRule(ctx, regleAAjouter)
ass.Nil(err)

// THEN
insertedRule, err := wekan.SelectRuleFromID(ctx, regleAAjouter.ID)
ass.Nil(err)
ass.NotNil(insertedRule)
ass.NotEmpty(insertedRule.Action)
ass.NotEmpty(insertedRule.Trigger)
ass.Equal(userDeTest.Username, insertedRule.Action.Username)
ass.Equal(boardLabelId, insertedRule.Trigger.LabelID)
ass.Equal(tableauAvecEtiquette.ID, insertedRule.Trigger.BoardID)
}

func TestRules_EnsureRuleAddTaskforceMemberExists(t *testing.T) {
ass := assert.New(t)
// GIVEN
tableauSansEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
userDeTest := createTestUser(t, "")
wekan.EnsureUserIsActiveBoardMember(ctx, tableauSansEtiquette.ID, userDeTest.ID)

boardLabelId := BoardLabelID(newId6())
testBoardLabel := BoardLabel{
ID: boardLabelId,
Name: BoardLabelName(t.Name()),
Color: "blue",
}
wekan.InsertBoardLabel(ctx, tableauSansEtiquette, testBoardLabel)
tableauAvecEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")

// WHEN
modified, err := wekan.EnsureRuleAddTaskforceMemberExists(ctx, userDeTest, tableauAvecEtiquette, testBoardLabel)

// THEN
ass.Nil(err)
ass.True(modified)
actualRules, _ := wekan.SelectRulesFromBoardID(ctx, tableauAvecEtiquette.ID)
require.Len(t, actualRules, 1)
actualRule := actualRules[0]
ass.Equal(actualRule.Action.ActionType, "addMember")
ass.Equal(actualRule.Trigger.ActivityType, "addedLabel")
}

func TestRules_EnsureRuleRemoveTaskforceMemberExists(t *testing.T) {
ass := assert.New(t)
// GIVEN
tableauSansEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
userDeTest := createTestUser(t, "")
wekan.EnsureUserIsActiveBoardMember(ctx, tableauSansEtiquette.ID, userDeTest.ID)

boardLabelId := BoardLabelID(newId6())
testBoardLabel := BoardLabel{
ID: boardLabelId,
Name: BoardLabelName(t.Name()),
Color: "blue",
}
wekan.InsertBoardLabel(ctx, tableauSansEtiquette, testBoardLabel)
tableauAvecEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")

// WHEN
modified, err := wekan.EnsureRuleRemoveTaskforceMemberExists(ctx, userDeTest, tableauAvecEtiquette, testBoardLabel)

// THEN
ass.Nil(err)
ass.True(modified)
actualRules, _ := wekan.SelectRulesFromBoardID(ctx, tableauAvecEtiquette.ID)
require.Len(t, actualRules, 1)
actualRule := actualRules[0]
ass.Equal(actualRule.Action.ActionType, "removeMember")
ass.Equal(actualRule.Trigger.ActivityType, "removedLabel")
}

func TestRules_EnsureRuleAddTaskforceMemberExists_WhenRuleAlreadyExists(t *testing.T) {
ass := assert.New(t)
// GIVEN
tableauSansEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
userDeTest := createTestUser(t, "")
wekan.EnsureUserIsActiveBoardMember(ctx, tableauSansEtiquette.ID, userDeTest.ID)

boardLabelId := BoardLabelID(newId6())
testBoardLabel := BoardLabel{
ID: boardLabelId,
Name: BoardLabelName(t.Name()),
Color: "blue",
}
wekan.InsertBoardLabel(ctx, tableauSansEtiquette, testBoardLabel)
tableauAvecEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
wekan.EnsureRuleAddTaskforceMemberExists(ctx, userDeTest, tableauAvecEtiquette, testBoardLabel)

// WHEN
modified, err := wekan.EnsureRuleAddTaskforceMemberExists(ctx, userDeTest, tableauAvecEtiquette, testBoardLabel)

// THEN
ass.Nil(err)
ass.False(modified)
actualRules, _ := wekan.SelectRulesFromBoardID(ctx, tableauAvecEtiquette.ID)
require.Len(t, actualRules, 1)
actualRule := actualRules[0]
ass.Equal(actualRule.Action.ActionType, "addMember")
ass.Equal(actualRule.Trigger.ActivityType, "addedLabel")
}

func TestRules_EnsureRuleRemoveTaskforceMemberExists_WhenRuleAlreadyExists(t *testing.T) {
ass := assert.New(t)
// GIVEN
tableauSansEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
userDeTest := createTestUser(t, "")
wekan.EnsureUserIsActiveBoardMember(ctx, tableauSansEtiquette.ID, userDeTest.ID)

boardLabelId := BoardLabelID(newId6())
testBoardLabel := BoardLabel{
ID: boardLabelId,
Name: BoardLabelName(t.Name()),
Color: "blue",
}
wekan.InsertBoardLabel(ctx, tableauSansEtiquette, testBoardLabel)
tableauAvecEtiquette, _ := wekan.GetBoardFromSlug(ctx, "tableau-crp-bfc")
wekan.EnsureRuleRemoveTaskforceMemberExists(ctx, userDeTest, tableauAvecEtiquette, testBoardLabel)

// WHEN
modified, err := wekan.EnsureRuleRemoveTaskforceMemberExists(ctx, userDeTest, tableauAvecEtiquette, testBoardLabel)

// THEN
ass.Nil(err)
ass.False(modified)
actualRules, _ := wekan.SelectRulesFromBoardID(ctx, tableauAvecEtiquette.ID)
require.Len(t, actualRules, 1)
actualRule := actualRules[0]
ass.Equal(actualRule.Action.ActionType, "removeMember")
ass.Equal(actualRule.Trigger.ActivityType, "removedLabel")
}

func TestRules_SelectRuleFromID_whenRuleExists(t *testing.T) {
ass := assert.New(t)
// WHEN
Expand Down

0 comments on commit ee198a8

Please sign in to comment.