diff --git a/models/activities/repo_activity.go b/models/activities/repo_activity.go index 3ffad035b7..ffa709ad19 100644 --- a/models/activities/repo_activity.go +++ b/models/activities/repo_activity.go @@ -337,8 +337,7 @@ func newlyCreatedIssues(ctx context.Context, repoID int64, fromTime time.Time) * func activeIssues(ctx context.Context, repoID int64, fromTime time.Time) *xorm.Session { sess := db.GetEngine(ctx).Where("issue.repo_id = ?", repoID). And("issue.is_pull = ?", false). - And("issue.created_unix >= ?", fromTime.Unix()). - Or("issue.closed_unix >= ?", fromTime.Unix()) + And("issue.created_unix >= ? OR issue.closed_unix >= ?", fromTime.Unix(), fromTime.Unix()) return sess } diff --git a/models/activities/repo_activity_test.go b/models/activities/repo_activity_test.go new file mode 100644 index 0000000000..06cd0e1e8a --- /dev/null +++ b/models/activities/repo_activity_test.go @@ -0,0 +1,30 @@ +// Copyright 2024 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package activities + +import ( + "testing" + "time" + + "code.gitea.io/gitea/models/db" + repo_model "code.gitea.io/gitea/models/repo" + "code.gitea.io/gitea/models/unittest" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestGetActivityStats(t *testing.T) { + require.NoError(t, unittest.PrepareTestDatabase()) + + repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) + + stats, err := GetActivityStats(db.DefaultContext, repo, time.Unix(0, 0), true, true, true, true) + require.NoError(t, err) + + assert.EqualValues(t, 2, stats.ActiveIssueCount()) + assert.EqualValues(t, 2, stats.OpenedIssueCount()) + assert.EqualValues(t, 0, stats.ClosedIssueCount()) + assert.EqualValues(t, 3, stats.ActivePRCount()) +}