mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 17:38:27 +00:00
* Moved CommandContext and CommandResult to models (#193) * Moved CommandContext and CommandResult to models * move from models to command rename CommandContext -> Context rename CommandResult -> Result * moved command related helpers into command package * move ProjectCommandContext and ProjectResult to command/project package * move project command context and project result * revert unrelated code * move tests * fix left over * fix linting * fix tests * remove unused import * fix project context dependencies * fix depenedecies * fix typo
76 lines
2.4 KiB
Go
76 lines
2.4 KiB
Go
package events_test
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/google/go-github/v31/github"
|
|
. "github.com/petergtz/pegomock"
|
|
"github.com/runatlantis/atlantis/server/core/locking"
|
|
"github.com/runatlantis/atlantis/server/events"
|
|
"github.com/runatlantis/atlantis/server/events/command"
|
|
"github.com/runatlantis/atlantis/server/events/models"
|
|
"github.com/runatlantis/atlantis/server/events/models/fixtures"
|
|
"github.com/runatlantis/atlantis/server/logging"
|
|
"github.com/runatlantis/atlantis/server/metrics"
|
|
)
|
|
|
|
func TestApplyCommandRunner_IsLocked(t *testing.T) {
|
|
RegisterMockTestingT(t)
|
|
|
|
cases := []struct {
|
|
Description string
|
|
ApplyLocked bool
|
|
ApplyLockError error
|
|
ExpComment string
|
|
}{
|
|
{
|
|
Description: "When global apply lock is present IsDisabled returns true",
|
|
ApplyLocked: true,
|
|
ApplyLockError: nil,
|
|
ExpComment: "**Error:** Running `atlantis apply` is disabled.",
|
|
},
|
|
{
|
|
Description: "When no global apply lock is present and DisableApply flag is false IsDisabled returns false",
|
|
ApplyLocked: false,
|
|
ApplyLockError: nil,
|
|
ExpComment: "Ran Apply for 0 projects:\n\n\n\n",
|
|
},
|
|
{
|
|
Description: "If ApplyLockChecker returns an error IsDisabled return value of DisableApply flag",
|
|
ApplyLockError: errors.New("error"),
|
|
ApplyLocked: false,
|
|
ExpComment: "Ran Apply for 0 projects:\n\n\n\n",
|
|
},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
t.Run(c.Description, func(t *testing.T) {
|
|
vcsClient := setup(t)
|
|
|
|
scopeNull, _, _ := metrics.NewLoggingScope(logger, "atlantis")
|
|
|
|
pull := &github.PullRequest{
|
|
State: github.String("open"),
|
|
}
|
|
modelPull := models.PullRequest{BaseRepo: fixtures.GithubRepo, State: models.OpenPullState, Num: fixtures.Pull.Num}
|
|
When(githubGetter.GetPullRequest(fixtures.GithubRepo, fixtures.Pull.Num)).ThenReturn(pull, nil)
|
|
When(eventParsing.ParseGithubPull(pull)).ThenReturn(modelPull, modelPull.BaseRepo, fixtures.GithubRepo, nil)
|
|
|
|
ctx := &command.Context{
|
|
User: fixtures.User,
|
|
Log: logging.NewNoopLogger(t),
|
|
Scope: scopeNull,
|
|
Pull: modelPull,
|
|
HeadRepo: fixtures.GithubRepo,
|
|
Trigger: command.CommentTrigger,
|
|
}
|
|
|
|
When(applyLockChecker.CheckApplyLock()).ThenReturn(locking.ApplyCommandLock{Locked: c.ApplyLocked}, c.ApplyLockError)
|
|
applyCommandRunner.Run(ctx, &events.CommentCommand{Name: command.Apply})
|
|
|
|
vcsClient.VerifyWasCalledOnce().CreateComment(fixtures.GithubRepo, modelPull.Num, c.ExpComment, "apply")
|
|
})
|
|
}
|
|
}
|