1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-11-29 22:58:09 +02:00
Files
sap-jenkins-library/pkg/gcp/token_test.go

68 lines
1.5 KiB
Go
Raw Normal View History

feat(events): add step to emit events to GCP (#4901) * feat(gcp): add step to send events to GCP (#4896) * add gcp token handling * add initial step * publish events * add test cases * fix test case --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * feat(gcp): Generate and validate the GCP OIDC token (#4899) * test setup for generation of jwt token * oidc token generator * push new step files * formatted code * removed toolchain and jose * removed toolchain:go 1.22.2 --------- Co-authored-by: jliempt <> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> * feat(events): add pipeline start and end event (#4900) * add gcp token handling * add initial step * publish events * add test cases * fix test case * move files * add possible values * handle start and end event * add sap events * dependencies --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * log successful event publish * remove dummy step * prevent step from failing * improve event creation * improve event creation * simplify eventing * remove detailed events * update parameter scope * update go.sum * fix test case * add missing method * refactor OIDC part * add oidc.go to vault pkg * mock OIDC token retrieval * mock GCP functions * update OIDC function name in Vault mocks * get event data from CPE * don't encode data payload in b64 * remove vault related changes * remove vault changes from step code * remove commented out code * documentation/steps/gcpPublishEvent.md * documentation/steps/gcpPublishEvent.md * remove hardcoded eventData * update roleID * go generate * add ordering key for pubsub event --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> Co-authored-by: jliempt <>
2024-05-06 09:28:28 +02:00
package gcp
import (
"fmt"
feat(events): add step to emit events to GCP (#4901) * feat(gcp): add step to send events to GCP (#4896) * add gcp token handling * add initial step * publish events * add test cases * fix test case --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * feat(gcp): Generate and validate the GCP OIDC token (#4899) * test setup for generation of jwt token * oidc token generator * push new step files * formatted code * removed toolchain and jose * removed toolchain:go 1.22.2 --------- Co-authored-by: jliempt <> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> * feat(events): add pipeline start and end event (#4900) * add gcp token handling * add initial step * publish events * add test cases * fix test case * move files * add possible values * handle start and end event * add sap events * dependencies --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * log successful event publish * remove dummy step * prevent step from failing * improve event creation * improve event creation * simplify eventing * remove detailed events * update parameter scope * update go.sum * fix test case * add missing method * refactor OIDC part * add oidc.go to vault pkg * mock OIDC token retrieval * mock GCP functions * update OIDC function name in Vault mocks * get event data from CPE * don't encode data payload in b64 * remove vault related changes * remove vault changes from step code * remove commented out code * documentation/steps/gcpPublishEvent.md * documentation/steps/gcpPublishEvent.md * remove hardcoded eventData * update roleID * go generate * add ordering key for pubsub event --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> Co-authored-by: jliempt <>
2024-05-06 09:28:28 +02:00
"testing"
"time"
feat(events): add step to emit events to GCP (#4901) * feat(gcp): add step to send events to GCP (#4896) * add gcp token handling * add initial step * publish events * add test cases * fix test case --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * feat(gcp): Generate and validate the GCP OIDC token (#4899) * test setup for generation of jwt token * oidc token generator * push new step files * formatted code * removed toolchain and jose * removed toolchain:go 1.22.2 --------- Co-authored-by: jliempt <> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> * feat(events): add pipeline start and end event (#4900) * add gcp token handling * add initial step * publish events * add test cases * fix test case * move files * add possible values * handle start and end event * add sap events * dependencies --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * log successful event publish * remove dummy step * prevent step from failing * improve event creation * improve event creation * simplify eventing * remove detailed events * update parameter scope * update go.sum * fix test case * add missing method * refactor OIDC part * add oidc.go to vault pkg * mock OIDC token retrieval * mock GCP functions * update OIDC function name in Vault mocks * get event data from CPE * don't encode data payload in b64 * remove vault related changes * remove vault changes from step code * remove commented out code * documentation/steps/gcpPublishEvent.md * documentation/steps/gcpPublishEvent.md * remove hardcoded eventData * update roleID * go generate * add ordering key for pubsub event --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> Co-authored-by: jliempt <>
2024-05-06 09:28:28 +02:00
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
)
func TestGetExchangeTokenRequestData(t *testing.T) {
// ctx := context.Background()
t.Run("success", func(t *testing.T) {
// init
projectNumber := "PROJECT_NUMBER"
pool := "POOL"
provider := "PROVIDER"
// test
data := getExchangeTokenRequestData(projectNumber, pool, provider, mock.Anything)
// asserts
assert.Equal(t, data.Audience, "//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL/providers/PROVIDER")
assert.Equal(t, data.SubjectToken, mock.Anything)
})
}
func Test_tokenIsValid(t *testing.T) {
nowUnix := time.Now().Unix()
tests := []struct {
name string
token string
expiresAtStr string
want bool
}{
{
"token is empty",
"",
"",
false,
}, {
"token expiredAt is empty",
"someToken",
"",
false,
}, {
"token is expired",
"someToken",
fmt.Sprintf("%d", nowUnix-100), // expiresAt is 100 seconds ahead
false,
}, {
"token is expired inside buffered timeframe",
"someToken",
fmt.Sprintf("%d", nowUnix+3), // expiresAt is 3 seconds before
false,
}, {
"token is valid",
"someToken",
fmt.Sprintf("%d", nowUnix+100), // expiresAt is 100 seconds before
true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, tokenIsValid(tt.token, tt.expiresAtStr), "tokenIsValid(%v, %v)", tt.token, tt.expiresAtStr)
})
}
feat(events): add step to emit events to GCP (#4901) * feat(gcp): add step to send events to GCP (#4896) * add gcp token handling * add initial step * publish events * add test cases * fix test case --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * feat(gcp): Generate and validate the GCP OIDC token (#4899) * test setup for generation of jwt token * oidc token generator * push new step files * formatted code * removed toolchain and jose * removed toolchain:go 1.22.2 --------- Co-authored-by: jliempt <> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> * feat(events): add pipeline start and end event (#4900) * add gcp token handling * add initial step * publish events * add test cases * fix test case * move files * add possible values * handle start and end event * add sap events * dependencies --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> * log successful event publish * remove dummy step * prevent step from failing * improve event creation * improve event creation * simplify eventing * remove detailed events * update parameter scope * update go.sum * fix test case * add missing method * refactor OIDC part * add oidc.go to vault pkg * mock OIDC token retrieval * mock GCP functions * update OIDC function name in Vault mocks * get event data from CPE * don't encode data payload in b64 * remove vault related changes * remove vault changes from step code * remove commented out code * documentation/steps/gcpPublishEvent.md * documentation/steps/gcpPublishEvent.md * remove hardcoded eventData * update roleID * go generate * add ordering key for pubsub event --------- Co-authored-by: Jordi van Liempt <35920075+jliempt@users.noreply.github.com> Co-authored-by: D071696 <sachin.baral.ramesh@sap.com> Co-authored-by: d071696 <153099976+d071696@users.noreply.github.com> Co-authored-by: jliempt <>
2024-05-06 09:28:28 +02:00
}