mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-30 00:37:59 +00:00
Co-authored-by: PePe Amengual <jose.amengual@gmail.com> Co-authored-by: Benoit Toulme <benoit.toulme@gmail.com>
109 lines
2.9 KiB
Go
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)
|
|
}
|
|
}
|