- classes/review.go: review queue, detail and Confirm, shared by MCP and the admin screen; AnswerReviewed and AttemptReviewed after commit - /api/v1/quiz-reviews routes behind the quizzes permission - quizzes_review_list, quizzes_review_show, quizzes_review_confirm
41 lines
1.2 KiB
Go
41 lines
1.2 KiB
Go
package classes_test
|
|
|
|
import (
|
|
"slices"
|
|
"strings"
|
|
"testing"
|
|
|
|
"git.golem15.com/golem15/sm-quizzes-plugin/classes"
|
|
)
|
|
|
|
// TestCheckReviewStatus: "" and open list the three unreviewed statuses,
|
|
// a grading status lists itself, all lists everything (nil), and any
|
|
// other value is a problem naming the valid values.
|
|
func TestCheckReviewStatus(t *testing.T) {
|
|
open := []string{"pending", "graded", "failed"}
|
|
for in, want := range map[string][]string{
|
|
"": open,
|
|
"open": open,
|
|
" open ": open,
|
|
"pending": {"pending"},
|
|
"graded": {"graded"},
|
|
"failed": {"failed"},
|
|
"reviewed": {"reviewed"},
|
|
"all": nil,
|
|
} {
|
|
got, problems := classes.CheckReviewStatus(in)
|
|
if len(problems) != 0 {
|
|
t.Errorf("%q: problems %v", in, problems)
|
|
}
|
|
if !slices.Equal(got, want) || (want == nil) != (got == nil) {
|
|
t.Errorf("%q = %v, want %v", in, got, want)
|
|
}
|
|
}
|
|
for _, in := range []string{"done", "Open", "pending,graded"} {
|
|
got, problems := classes.CheckReviewStatus(in)
|
|
if got != nil || len(problems) != 1 || !strings.Contains(problems[0], "open, pending, graded, failed, reviewed, all") {
|
|
t.Errorf("%q = %v %v, want one problem listing the valid values", in, got, problems)
|
|
}
|
|
}
|
|
}
|