mirror of
https://github.com/actions-runner-controller/actions-runner-controller.git
synced 2026-10-05 21:32:03 +02:00
Add Identifier to actions.Client (#2237)
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
package actions_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/actions/actions-runner-controller/github/actions"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestClient_Identifier(t *testing.T) {
|
||||
t.Run("configURL changes", func(t *testing.T) {
|
||||
scenarios := []struct {
|
||||
name string
|
||||
url string
|
||||
}{
|
||||
{
|
||||
name: "url of a different repo",
|
||||
url: "https://github.com/org/repo2",
|
||||
},
|
||||
{
|
||||
name: "url of an org",
|
||||
url: "https://github.com/org",
|
||||
},
|
||||
{
|
||||
name: "url of an enterprise",
|
||||
url: "https://github.com/enterprises/my-enterprise",
|
||||
},
|
||||
{
|
||||
name: "url of a self-hosted github",
|
||||
url: "https://selfhosted.com/org/repo",
|
||||
},
|
||||
}
|
||||
|
||||
configURL := "https://github.com/org/repo"
|
||||
defaultCreds := &actions.ActionsAuth{
|
||||
Token: "token",
|
||||
}
|
||||
oldClient, err := actions.NewClient(configURL, defaultCreds)
|
||||
require.NoError(t, err)
|
||||
|
||||
for _, scenario := range scenarios {
|
||||
t.Run(scenario.name, func(t *testing.T) {
|
||||
newClient, err := actions.NewClient(scenario.url, defaultCreds)
|
||||
require.NoError(t, err)
|
||||
assert.NotEqual(t, oldClient.Identifier(), newClient.Identifier())
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("credentials change", func(t *testing.T) {
|
||||
defaultTokenCreds := &actions.ActionsAuth{
|
||||
Token: "token",
|
||||
}
|
||||
defaultAppCreds := &actions.ActionsAuth{
|
||||
AppCreds: &actions.GitHubAppAuth{
|
||||
AppID: 123,
|
||||
AppInstallationID: 123,
|
||||
AppPrivateKey: "private key",
|
||||
},
|
||||
}
|
||||
|
||||
scenarios := []struct {
|
||||
name string
|
||||
old *actions.ActionsAuth
|
||||
new *actions.ActionsAuth
|
||||
}{
|
||||
{
|
||||
name: "different token",
|
||||
old: defaultTokenCreds,
|
||||
new: &actions.ActionsAuth{
|
||||
Token: "new token",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "changing from token to github app",
|
||||
old: defaultTokenCreds,
|
||||
new: defaultAppCreds,
|
||||
},
|
||||
{
|
||||
name: "changing from github app to token",
|
||||
old: defaultAppCreds,
|
||||
new: defaultTokenCreds,
|
||||
},
|
||||
{
|
||||
name: "different github app",
|
||||
old: defaultAppCreds,
|
||||
new: &actions.ActionsAuth{
|
||||
AppCreds: &actions.GitHubAppAuth{
|
||||
AppID: 456,
|
||||
AppInstallationID: 456,
|
||||
AppPrivateKey: "new private key",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
defaultConfigURL := "https://github.com/org/repo"
|
||||
|
||||
for _, scenario := range scenarios {
|
||||
t.Run(scenario.name, func(t *testing.T) {
|
||||
oldClient, err := actions.NewClient(defaultConfigURL, scenario.old)
|
||||
require.NoError(t, err)
|
||||
|
||||
newClient, err := actions.NewClient(defaultConfigURL, scenario.new)
|
||||
require.NoError(t, err)
|
||||
assert.NotEqual(t, oldClient.Identifier(), newClient.Identifier())
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user