You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

issue_stopwatch_test.go 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2020 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/unittest"
  8. user_model "code.gitea.io/gitea/models/user"
  9. "code.gitea.io/gitea/modules/timeutil"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestCancelStopwatch(t *testing.T) {
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. user1, err := user_model.GetUserByID(1)
  15. assert.NoError(t, err)
  16. issue1, err := GetIssueByID(1)
  17. assert.NoError(t, err)
  18. issue2, err := GetIssueByID(2)
  19. assert.NoError(t, err)
  20. err = CancelStopwatch(user1, issue1)
  21. assert.NoError(t, err)
  22. unittest.AssertNotExistsBean(t, &Stopwatch{UserID: user1.ID, IssueID: issue1.ID})
  23. _ = unittest.AssertExistsAndLoadBean(t, &Comment{Type: CommentTypeCancelTracking, PosterID: user1.ID, IssueID: issue1.ID})
  24. assert.Nil(t, CancelStopwatch(user1, issue2))
  25. }
  26. func TestStopwatchExists(t *testing.T) {
  27. assert.NoError(t, unittest.PrepareTestDatabase())
  28. assert.True(t, StopwatchExists(1, 1))
  29. assert.False(t, StopwatchExists(1, 2))
  30. }
  31. func TestHasUserStopwatch(t *testing.T) {
  32. assert.NoError(t, unittest.PrepareTestDatabase())
  33. exists, sw, err := HasUserStopwatch(1)
  34. assert.NoError(t, err)
  35. assert.True(t, exists)
  36. assert.Equal(t, int64(1), sw.ID)
  37. exists, _, err = HasUserStopwatch(3)
  38. assert.NoError(t, err)
  39. assert.False(t, exists)
  40. }
  41. func TestCreateOrStopIssueStopwatch(t *testing.T) {
  42. assert.NoError(t, unittest.PrepareTestDatabase())
  43. user2, err := user_model.GetUserByID(2)
  44. assert.NoError(t, err)
  45. user3, err := user_model.GetUserByID(3)
  46. assert.NoError(t, err)
  47. issue1, err := GetIssueByID(1)
  48. assert.NoError(t, err)
  49. issue2, err := GetIssueByID(2)
  50. assert.NoError(t, err)
  51. assert.NoError(t, CreateOrStopIssueStopwatch(user3, issue1))
  52. sw := unittest.AssertExistsAndLoadBean(t, &Stopwatch{UserID: 3, IssueID: 1}).(*Stopwatch)
  53. assert.LessOrEqual(t, sw.CreatedUnix, timeutil.TimeStampNow())
  54. assert.NoError(t, CreateOrStopIssueStopwatch(user2, issue2))
  55. unittest.AssertNotExistsBean(t, &Stopwatch{UserID: 2, IssueID: 2})
  56. unittest.AssertExistsAndLoadBean(t, &TrackedTime{UserID: 2, IssueID: 2})
  57. }