Skip to content

Commit e12cb40

Browse files
committed
Add tests for drag lock service
1 parent 8c4ba0b commit e12cb40

File tree

4 files changed

+408
-14
lines changed

4 files changed

+408
-14
lines changed

server/src/draglocks/mock_DragLockService.go

Lines changed: 14 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/src/draglocks/service.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func (service *Service) ReleaseLock(ctx context.Context, noteID uuid.UUID, userI
9696
return true
9797
}
9898

99-
func (service *Service) GetLock(ctx context.Context, noteID uuid.UUID) *DragLock {
99+
func (service *Service) GetLock(ctx context.Context, noteID uuid.UUID) (*DragLock, error) {
100100
ctx, span := tracer.Start(ctx, "scrumlr.draglock.service.get")
101101
defer span.End()
102102
log := logger.FromContext(ctx)
@@ -110,18 +110,18 @@ func (service *Service) GetLock(ctx context.Context, noteID uuid.UUID) *DragLock
110110
span.SetStatus(codes.Error, "failed to get lock")
111111
span.RecordError(err)
112112
log.Errorw("failed to get lock", "err", err)
113-
return nil
113+
return nil, err
114114
}
115115

116116
var lock DragLock
117117
err = json.Unmarshal(val, &lock)
118118
if err != nil {
119119
span.SetStatus(codes.Error, "failed to unmarschal lock data")
120120
span.RecordError(err)
121-
return nil
121+
return nil, err
122122
}
123123

124-
return &lock
124+
return &lock, err
125125
}
126126

127127
func (service *Service) IsLocked(ctx context.Context, noteID uuid.UUID) bool {
@@ -133,15 +133,24 @@ func (service *Service) IsLocked(ctx context.Context, noteID uuid.UUID) bool {
133133
attribute.String("scrumlr.draglock.service.islocked.noteid", noteID.String()),
134134
)
135135

136-
_, err := service.cache.Con.Get(ctx, noteID.String())
136+
notes, err := service.noteService.GetStack(ctx, noteID)
137137
if err != nil {
138-
span.SetStatus(codes.Error, "failed to get lock")
138+
span.SetStatus(codes.Error, "failed to get stack")
139139
span.RecordError(err)
140-
log.Errorw("failed to get lock", "err", err)
140+
log.Errorw("failed to get stack", "err", err)
141141
return false
142142
}
143143

144-
return true
144+
locked := false
145+
for _, note := range notes {
146+
// if an error occured the lock is not found -> note not locked
147+
_, err := service.cache.Con.Get(ctx, note.ID.String())
148+
if err == nil {
149+
locked = true
150+
}
151+
}
152+
153+
return locked
145154
}
146155

147156
func (service *Service) broadcastAcquireLock(ctx context.Context, boardID uuid.UUID, noteID uuid.UUID, userID uuid.UUID) {

0 commit comments

Comments
 (0)