Skip to content

Commit

Permalink
kyc/quiz: align MaxWrongAnswersPerSession check
Browse files Browse the repository at this point in the history
  • Loading branch information
ice-dionysos committed Jan 14, 2024
1 parent 8601ade commit 1b6eb7c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion kyc/quiz/quiz.go
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ func (r *repositoryImpl) ContinueQuizSession( //nolint:funlen,revive //.
},
}

if int(incorrectNum) >= r.config.MaxWrongAnswersPerSession {
if int(incorrectNum) > r.config.MaxWrongAnswersPerSession {
quiz.Result = FailureResult

return wrapErrorInTx(r.UserMarkSessionAsFinished(ctx, userID, now, tx, false, false))
Expand Down
15 changes: 13 additions & 2 deletions kyc/quiz/quiz_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ func testManagerSessionStart(ctx context.Context, t *testing.T, r *repositoryImp
session, err := r.StartQuizSession(ctx, "bogus", "en")
require.NoError(t, err)

for i := uint8(0); i < uint8(r.config.MaxWrongAnswersPerSession); i++ {
for i := uint8(0); i < uint8(r.config.MaxWrongAnswersPerSession+1); i++ {
session, err = r.ContinueQuizSession(ctx, "bogus", i+uint8(1), 0)
require.NoError(t, err)
require.NotNil(t, session)
Expand Down Expand Up @@ -375,6 +375,17 @@ func testManagerSessionContinueWithIncorrectAnswers(ctx context.Context, t *test
require.NotEmpty(t, session.Progress.NextQuestion.Text)
require.Equal(t, uint8(1), session.Progress.NextQuestion.Number)

session, err = r.ContinueQuizSession(ctx, "bogus", session.Progress.NextQuestion.Number, 0)
require.NoError(t, err)
require.NotNil(t, session)
require.NotNil(t, session.Progress)
require.Empty(t, session.Result)
require.NotNil(t, session.Progress.ExpiresAt)
require.NotEmpty(t, session.Progress.NextQuestion)
require.Equal(t, uint8(3), session.Progress.MaxQuestions)
require.NotEmpty(t, session.Progress.NextQuestion.Text)
require.Equal(t, uint8(2), session.Progress.NextQuestion.Number)

session, err = r.ContinueQuizSession(ctx, "bogus", session.Progress.NextQuestion.Number, 0)
require.NoError(t, err)
require.NotNil(t, session)
Expand All @@ -383,7 +394,7 @@ func testManagerSessionContinueWithIncorrectAnswers(ctx context.Context, t *test
require.Nil(t, session.Progress.NextQuestion)
require.Equal(t, uint8(3), session.Progress.MaxQuestions)
require.Equal(t, uint8(0), session.Progress.CorrectAnswers)
require.Equal(t, uint8(1), session.Progress.IncorrectAnswers)
require.Equal(t, uint8(2), session.Progress.IncorrectAnswers)
}

func TestSessionManager(t *testing.T) {
Expand Down

0 comments on commit 1b6eb7c

Please sign in to comment.