package main import "testing" func TestReviewApprovalCheck(t *testing.T) { tests := []struct { Name string GroupName string InString string Approved bool Rejected bool }{ { Name: "Empty String", GroupName: "group", InString: "", }, { Name: "Random Text", GroupName: "group", InString: "some things LGTM", }, { Name: "Group name with Random Text means disapproval", GroupName: "group", InString: "@group: some things LGTM", Rejected: true, }, { Name: "Bad name with Approval", GroupName: "group2", InString: "@group: LGTM", }, { Name: "Bad name with Approval", GroupName: "group2", InString: "@group: LGTM", }, { Name: "LGTM approval", GroupName: "group2", InString: "@group2: LGTM", Approved: true, }, { Name: "approval", GroupName: "group2", InString: "@group2: approved", Approved: true, }, { Name: "approval", GroupName: "group2", InString: "@group2: approve", Approved: true, }, { Name: "disapproval", GroupName: "group2", InString: "@group2: disapprove", Rejected: true, }, } for _, test := range tests { t.Run(test.Name, func(t *testing.T) { InitRegex(test.GroupName) if r := ReviewAccepted(test.InString); r != test.Approved { t.Error("ReviewAccepted() returned", r, "expecting", test.Approved) } if r := ReviewRejected(test.InString); r != test.Rejected { t.Error("ReviewRejected() returned", r, "expecting", test.Rejected) } }) } }