Files
atlantis/server/events/vcs/github_credentials_test.go
David Glasser 5a918e382c feat: Add --max-comments-per-command configuration (#3905)
Co-authored-by: PePe Amengual <jose.amengual@gmail.com>
Co-authored-by: Benoit Toulme <benoit.toulme@gmail.com>
2024-06-26 23:13:09 -04:00

109 lines
2.9 KiB
Go

package vcs_test
import (
"testing"
"github.com/runatlantis/atlantis/server/events/vcs"
"github.com/runatlantis/atlantis/server/events/vcs/testdata"
"github.com/runatlantis/atlantis/server/logging"
. "github.com/runatlantis/atlantis/testing"
)
func TestGithubClient_GetUser_AppSlug(t *testing.T) {
logger := logging.NewNoopLogger(t)
defer disableSSLVerification()()
testServer, err := testdata.GithubAppTestServer(t)
Ok(t, err)
anonCreds := &vcs.GithubAnonymousCredentials{}
anonClient, err := vcs.NewGithubClient(testServer, anonCreds, vcs.GithubConfig{}, 0, logging.NewNoopLogger(t))
Ok(t, err)
tempSecrets, err := anonClient.ExchangeCode(logger, "good-code")
Ok(t, err)
appCreds := &vcs.GithubAppCredentials{
AppID: tempSecrets.ID,
Key: []byte(testdata.GithubPrivateKey),
Hostname: testServer,
AppSlug: "some-app",
}
user, err := appCreds.GetUser()
Ok(t, err)
Assert(t, user == "octoapp[bot]", "user should not be empty")
}
func TestGithubClient_AppAuthentication(t *testing.T) {
logger := logging.NewNoopLogger(t)
defer disableSSLVerification()()
testServer, err := testdata.GithubAppTestServer(t)
Ok(t, err)
anonCreds := &vcs.GithubAnonymousCredentials{}
anonClient, err := vcs.NewGithubClient(testServer, anonCreds, vcs.GithubConfig{}, 0, logging.NewNoopLogger(t))
Ok(t, err)
tempSecrets, err := anonClient.ExchangeCode(logger, "good-code")
Ok(t, err)
appCreds := &vcs.GithubAppCredentials{
AppID: tempSecrets.ID,
Key: []byte(testdata.GithubPrivateKey),
Hostname: testServer,
}
_, err = vcs.NewGithubClient(testServer, appCreds, vcs.GithubConfig{}, 0, logging.NewNoopLogger(t))
Ok(t, err)
token, err := appCreds.GetToken()
Ok(t, err)
newToken, err := appCreds.GetToken()
Ok(t, err)
user, err := appCreds.GetUser()
Ok(t, err)
Assert(t, user == "", "user should be empty")
if token != newToken {
t.Errorf("app token was not cached: %q != %q", token, newToken)
}
}
func TestGithubClient_MultipleAppAuthentication(t *testing.T) {
logger := logging.NewNoopLogger(t)
defer disableSSLVerification()()
testServer, err := testdata.GithubMultipleAppTestServer(t)
Ok(t, err)
anonCreds := &vcs.GithubAnonymousCredentials{}
anonClient, err := vcs.NewGithubClient(testServer, anonCreds, vcs.GithubConfig{}, 0, logging.NewNoopLogger(t))
Ok(t, err)
tempSecrets, err := anonClient.ExchangeCode(logger, "good-code")
Ok(t, err)
appCreds := &vcs.GithubAppCredentials{
AppID: tempSecrets.ID,
InstallationID: 1,
Key: []byte(testdata.GithubPrivateKey),
Hostname: testServer,
}
_, err = vcs.NewGithubClient(testServer, appCreds, vcs.GithubConfig{}, 0, logging.NewNoopLogger(t))
Ok(t, err)
token, err := appCreds.GetToken()
Ok(t, err)
newToken, err := appCreds.GetToken()
Ok(t, err)
user, err := appCreds.GetUser()
Ok(t, err)
Assert(t, user == "", "user should be empty")
if token != newToken {
t.Errorf("app token was not cached: %q != %q", token, newToken)
}
}