summaryrefslogtreecommitdiff
path: root/player-server/internal/service/perm_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-17 15:25:52 +0300
committerPaul Buetow <paul@buetow.org>2026-05-17 15:25:52 +0300
commit914bd7cd6aa14e839332a98d91c30b19865b0cf2 (patch)
tree02b11537237a204048589e14ed24938b805e42f7 /player-server/internal/service/perm_test.go
parent3b24f0e1be832584d6550e8cc3e5d24329f66f90 (diff)
Restructure repo: move Go server into player-server/
Diffstat (limited to 'player-server/internal/service/perm_test.go')
-rw-r--r--player-server/internal/service/perm_test.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/player-server/internal/service/perm_test.go b/player-server/internal/service/perm_test.go
new file mode 100644
index 0000000..26c27b3
--- /dev/null
+++ b/player-server/internal/service/perm_test.go
@@ -0,0 +1,61 @@
+package service
+
+import (
+ "context"
+ "errors"
+ "testing"
+
+ "codeberg.org/snonux/player/internal/clock"
+ "codeberg.org/snonux/player/internal/model"
+ "codeberg.org/snonux/player/internal/repository"
+)
+
+func TestPermissionAdminService_GrantPermission(t *testing.T) {
+ ctx := context.Background()
+
+ tests := []struct {
+ name string
+ storeErr error
+ wantErr bool
+ }{
+ {
+ name: "ok",
+ },
+ {
+ name: "store error",
+ storeErr: errors.New("boom"),
+ wantErr: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ var granted *model.SetPermission
+ store := &repository.MockStore{
+ SetPermissionRepo: repository.MockSetPermissionRepo{
+ GrantPermissionFunc: func(ctx context.Context, perm *model.SetPermission) error {
+ granted = perm
+ return tt.storeErr
+ },
+ },
+ }
+ svc := NewPermissionAdminService(store, clock.RealClock{})
+ err := svc.GrantPermission(ctx, 1, 2, model.RoleViewer)
+ if tt.wantErr {
+ if err == nil {
+ t.Fatal("expected error")
+ }
+ return
+ }
+ if err != nil {
+ t.Fatalf("unexpected error: %v", err)
+ }
+ if granted == nil {
+ t.Fatal("expected permission granted")
+ }
+ if granted.Role != model.RoleViewer {
+ t.Fatalf("unexpected role %q", granted.Role)
+ }
+ })
+ }
+}