loading up the forgejo repo on tangled to test page performance
at forgejo 206 lines 7.2 kB view raw
1// Copyright 2024 The Forgejo Authors. All rights reserved. 2// SPDX-License-Identifier: MIT 3 4package integration 5 6import ( 7 "testing" 8 9 "forgejo.org/models/db" 10 git_model "forgejo.org/models/git" 11 "forgejo.org/models/unittest" 12 "forgejo.org/modules/structs" 13 "forgejo.org/tests" 14 15 "github.com/stretchr/testify/assert" 16 "github.com/stretchr/testify/require" 17) 18 19func TestGetLatestCommitStatusForPairs(t *testing.T) { 20 require.NoError(t, unittest.PrepareTestDatabase()) 21 22 t.Run("Empty", func(t *testing.T) { 23 defer tests.PrintCurrentTest(t)() 24 pairs, err := git_model.GetLatestCommitStatusForPairs(db.DefaultContext, nil) 25 require.NoError(t, err) 26 assert.Equal(t, map[int64][]*git_model.CommitStatus{}, pairs) 27 }) 28 29 t.Run("Repo 1", func(t *testing.T) { 30 defer tests.PrintCurrentTest(t)() 31 pairs, err := git_model.GetLatestCommitStatusForPairs(db.DefaultContext, []git_model.RepoSHA{{RepoID: 1, SHA: "1234123412341234123412341234123412341234"}}) 32 require.NoError(t, err) 33 34 assert.Equal(t, map[int64][]*git_model.CommitStatus{ 35 1: { 36 { 37 ID: 7, 38 Index: 6, 39 RepoID: 1, 40 State: structs.CommitStatusPending, 41 SHA: "1234123412341234123412341234123412341234", 42 TargetURL: "https://example.com/builds/", 43 Description: "My awesome deploy service", 44 ContextHash: "ae9547713a6665fc4261d0756904932085a41cf2", 45 Context: "deploy/awesomeness", 46 CreatorID: 2, 47 }, 48 { 49 ID: 4, 50 Index: 4, 51 State: structs.CommitStatusFailure, 52 TargetURL: "https://example.com/builds/", 53 Description: "My awesome CI-service", 54 Context: "ci/awesomeness", 55 CreatorID: 2, 56 RepoID: 1, 57 SHA: "1234123412341234123412341234123412341234", 58 ContextHash: "c65f4d64a3b14a3eced0c9b36799e66e1bd5ced7", 59 }, 60 { 61 ID: 3, 62 Index: 3, 63 State: structs.CommitStatusSuccess, 64 TargetURL: "https://example.com/coverage/", 65 Description: "My awesome Coverage service", 66 Context: "cov/awesomeness", 67 CreatorID: 2, 68 RepoID: 1, 69 SHA: "1234123412341234123412341234123412341234", 70 ContextHash: "3929ac7bccd3fa1bf9b38ddedb77973b1b9a8cfe", 71 }, 72 }, 73 }, pairs) 74 }) 75 t.Run("Repo 62", func(t *testing.T) { 76 defer tests.PrintCurrentTest(t)() 77 pairs, err := git_model.GetLatestCommitStatusForPairs(db.DefaultContext, []git_model.RepoSHA{{RepoID: 62, SHA: "774f93df12d14931ea93259ae93418da4482fcc1"}}) 78 require.NoError(t, err) 79 80 assert.Equal(t, map[int64][]*git_model.CommitStatus{ 81 62: { 82 { 83 ID: 8, 84 Index: 2, 85 RepoID: 62, 86 State: structs.CommitStatusError, 87 TargetURL: "/user2/test_workflows/actions", 88 Description: "My awesome deploy service - v2", 89 Context: "deploy/awesomeness", 90 SHA: "774f93df12d14931ea93259ae93418da4482fcc1", 91 ContextHash: "ae9547713a6665fc4261d0756904932085a41cf2", 92 CreatorID: 2, 93 }, 94 }, 95 }, pairs) 96 }) 97 98 t.Run("Repo 62 non-existent sha", func(t *testing.T) { 99 defer tests.PrintCurrentTest(t)() 100 pairs, err := git_model.GetLatestCommitStatusForPairs(db.DefaultContext, []git_model.RepoSHA{{RepoID: 62, SHA: "774f93df12d14931ea93259ae93418da4482fcc"}}) 101 require.NoError(t, err) 102 103 assert.Equal(t, map[int64][]*git_model.CommitStatus{}, pairs) 104 }) 105 106 t.Run("SHA with non-existent repo id", func(t *testing.T) { 107 defer tests.PrintCurrentTest(t)() 108 pairs, err := git_model.GetLatestCommitStatusForPairs(db.DefaultContext, []git_model.RepoSHA{{RepoID: 1, SHA: "774f93df12d14931ea93259ae93418da4482fcc1"}}) 109 require.NoError(t, err) 110 111 assert.Equal(t, map[int64][]*git_model.CommitStatus{}, pairs) 112 }) 113} 114 115func TestGetLatestCommitStatusForRepoCommitIDs(t *testing.T) { 116 require.NoError(t, unittest.PrepareTestDatabase()) 117 118 t.Run("Empty", func(t *testing.T) { 119 defer tests.PrintCurrentTest(t)() 120 repoStatuses, err := git_model.GetLatestCommitStatusForRepoCommitIDs(db.DefaultContext, 62, nil) 121 require.NoError(t, err) 122 assert.Equal(t, map[string][]*git_model.CommitStatus{}, repoStatuses) 123 }) 124 125 t.Run("Repo 1", func(t *testing.T) { 126 defer tests.PrintCurrentTest(t)() 127 repoStatuses, err := git_model.GetLatestCommitStatusForRepoCommitIDs(db.DefaultContext, 1, []string{"1234123412341234123412341234123412341234"}) 128 require.NoError(t, err) 129 assert.Equal(t, map[string][]*git_model.CommitStatus{ 130 "1234123412341234123412341234123412341234": { 131 { 132 ID: 3, 133 Index: 3, 134 State: structs.CommitStatusSuccess, 135 TargetURL: "https://example.com/coverage/", 136 Description: "My awesome Coverage service", 137 Context: "cov/awesomeness", 138 CreatorID: 2, 139 RepoID: 1, 140 SHA: "1234123412341234123412341234123412341234", 141 ContextHash: "3929ac7bccd3fa1bf9b38ddedb77973b1b9a8cfe", 142 }, 143 { 144 ID: 4, 145 Index: 4, 146 State: structs.CommitStatusFailure, 147 TargetURL: "https://example.com/builds/", 148 Description: "My awesome CI-service", 149 Context: "ci/awesomeness", 150 CreatorID: 2, 151 RepoID: 1, 152 SHA: "1234123412341234123412341234123412341234", 153 ContextHash: "c65f4d64a3b14a3eced0c9b36799e66e1bd5ced7", 154 }, 155 { 156 ID: 7, 157 Index: 6, 158 RepoID: 1, 159 State: structs.CommitStatusPending, 160 SHA: "1234123412341234123412341234123412341234", 161 TargetURL: "https://example.com/builds/", 162 Description: "My awesome deploy service", 163 ContextHash: "ae9547713a6665fc4261d0756904932085a41cf2", 164 Context: "deploy/awesomeness", 165 CreatorID: 2, 166 }, 167 }, 168 }, repoStatuses) 169 }) 170 171 t.Run("Repo 62", func(t *testing.T) { 172 defer tests.PrintCurrentTest(t)() 173 repoStatuses, err := git_model.GetLatestCommitStatusForRepoCommitIDs(db.DefaultContext, 62, []string{"774f93df12d14931ea93259ae93418da4482fcc1"}) 174 require.NoError(t, err) 175 assert.Equal(t, map[string][]*git_model.CommitStatus{ 176 "774f93df12d14931ea93259ae93418da4482fcc1": { 177 { 178 ID: 8, 179 Index: 2, 180 RepoID: 62, 181 State: structs.CommitStatusError, 182 TargetURL: "/user2/test_workflows/actions", 183 Description: "My awesome deploy service - v2", 184 Context: "deploy/awesomeness", 185 SHA: "774f93df12d14931ea93259ae93418da4482fcc1", 186 ContextHash: "ae9547713a6665fc4261d0756904932085a41cf2", 187 CreatorID: 2, 188 }, 189 }, 190 }, repoStatuses) 191 }) 192 193 t.Run("Repo 62 non-existent sha", func(t *testing.T) { 194 defer tests.PrintCurrentTest(t)() 195 repoStatuses, err := git_model.GetLatestCommitStatusForRepoCommitIDs(db.DefaultContext, 62, []string{"774f93df12d14931ea93259ae93418da4482fcc"}) 196 require.NoError(t, err) 197 assert.Equal(t, map[string][]*git_model.CommitStatus{}, repoStatuses) 198 }) 199 200 t.Run("non-existent repo ID", func(t *testing.T) { 201 defer tests.PrintCurrentTest(t)() 202 repoStatuses, err := git_model.GetLatestCommitStatusForRepoCommitIDs(db.DefaultContext, 1, []string{"774f93df12d14931ea93259ae93418da4482fcc"}) 203 require.NoError(t, err) 204 assert.Equal(t, map[string][]*git_model.CommitStatus{}, repoStatuses) 205 }) 206}