mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-28 23:18:15 +00:00
* fix(deps): update module github.com/petergtz/pegomock/v3 to v4 in go.mod * remove pegomock generate m option, which is not support after v4 * make regen-mocks * replace pegomock v4 primitive eq/matchers * convert pegomock v4 Eq/Any matchers * remove custom models.Repo matcher * pegomock v4 cannot use result method args ref https://github.com/petergtz/pegomock/issues/123 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
46 lines
1.9 KiB
Go
46 lines
1.9 KiB
Go
package jobs_test
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
. "github.com/petergtz/pegomock/v4"
|
|
"github.com/runatlantis/atlantis/server/events/command"
|
|
"github.com/runatlantis/atlantis/server/events/models"
|
|
"github.com/runatlantis/atlantis/server/jobs"
|
|
"github.com/runatlantis/atlantis/server/jobs/mocks"
|
|
. "github.com/runatlantis/atlantis/testing"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestJobURLSetter(t *testing.T) {
|
|
ctx := createTestProjectCmdContext(t)
|
|
|
|
t.Run("update project status with project jobs url", func(t *testing.T) {
|
|
RegisterMockTestingT(t)
|
|
projectStatusUpdater := mocks.NewMockProjectStatusUpdater()
|
|
projectJobURLGenerator := mocks.NewMockProjectJobURLGenerator()
|
|
url := "url-to-project-jobs"
|
|
jobURLSetter := jobs.NewJobURLSetter(projectJobURLGenerator, projectStatusUpdater)
|
|
result := &command.ProjectResult{}
|
|
|
|
When(projectJobURLGenerator.GenerateProjectJobURL(Eq[command.ProjectContext](ctx))).ThenReturn(url, nil)
|
|
When(projectStatusUpdater.UpdateProject(ctx, command.Plan, models.PendingCommitStatus, url, nil)).ThenReturn(nil)
|
|
err := jobURLSetter.SetJobURLWithStatus(ctx, command.Plan, models.PendingCommitStatus, result)
|
|
Ok(t, err)
|
|
|
|
projectStatusUpdater.VerifyWasCalledOnce().UpdateProject(ctx, command.Plan, models.PendingCommitStatus, "url-to-project-jobs", result)
|
|
})
|
|
|
|
t.Run("update project status with project jobs url error", func(t *testing.T) {
|
|
RegisterMockTestingT(t)
|
|
projectStatusUpdater := mocks.NewMockProjectStatusUpdater()
|
|
projectJobURLGenerator := mocks.NewMockProjectJobURLGenerator()
|
|
jobURLSetter := jobs.NewJobURLSetter(projectJobURLGenerator, projectStatusUpdater)
|
|
|
|
When(projectJobURLGenerator.GenerateProjectJobURL(Eq[command.ProjectContext](ctx))).ThenReturn("url-to-project-jobs", errors.New("some error"))
|
|
err := jobURLSetter.SetJobURLWithStatus(ctx, command.Plan, models.PendingCommitStatus, nil)
|
|
assert.Error(t, err)
|
|
})
|
|
}
|