29 lines
684 B
Go
29 lines
684 B
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"pargar/backend/internal/models"
|
|
)
|
|
|
|
func TestConsumeHeartsSkipsStaff(t *testing.T) {
|
|
h := &HeartsService{}
|
|
for _, role := range []models.Role{models.RoleAdmin, models.RoleMentor} {
|
|
u := &models.User{ID: 1, Role: role, Hearts: 1, IsLocked: false}
|
|
out, lost, err := h.ConsumeHearts(context.Background(), u, 3)
|
|
if err != nil {
|
|
t.Fatalf("%s: unexpected err %v", role, err)
|
|
}
|
|
if lost != 0 {
|
|
t.Fatalf("%s: expected 0 hearts lost, got %d", role, lost)
|
|
}
|
|
if out.Hearts != 1 {
|
|
t.Fatalf("%s: hearts should stay 1, got %d", role, out.Hearts)
|
|
}
|
|
if out.IsLocked {
|
|
t.Fatalf("%s: staff must not lock", role)
|
|
}
|
|
}
|
|
}
|