Skip to content

Commit

Permalink
Fix refresh tokens tests
Browse files Browse the repository at this point in the history
  • Loading branch information
RobiNino committed Apr 21, 2024
1 parent b9a1630 commit d984a2b
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 23 deletions.
19 changes: 13 additions & 6 deletions access_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,12 +121,13 @@ func TestRefreshableAccessTokens(t *testing.T) {
if !assert.NoError(t, err) {
return
}
curAccessToken, curRefreshToken, err := getAccessTokensFromConfig(t, tests.ServerId)
curAccessToken, curRefreshToken, curArtifactoryRefreshToken, err := getTokensFromConfig(t)
if !assert.NoError(t, err) {
return
}
assert.NotEmpty(t, curAccessToken)
assert.NotEmpty(t, curRefreshToken)
assert.Empty(t, curArtifactoryRefreshToken)

// Make the token always refresh.
auth.RefreshPlatformTokenBeforeExpiryMinutes = 365 * 24 * 60
Expand All @@ -137,7 +138,7 @@ func TestRefreshableAccessTokens(t *testing.T) {
if !assert.NoError(t, err) {
return
}
curAccessToken, curRefreshToken, err = assertTokensChanged(t, curAccessToken, curRefreshToken)
curAccessToken, curRefreshToken, err = assertAccessTokensChanged(t, curAccessToken, curRefreshToken)
if !assert.NoError(t, err) {
return
}
Expand All @@ -149,24 +150,30 @@ func TestRefreshableAccessTokens(t *testing.T) {
if !assert.NoError(t, err) {
return
}
newAccessToken, newRefreshToken, err := getArtifactoryTokensFromConfig(t)
newAccessToken, newRefreshToken, newArtifactoryRefreshToken, err := getTokensFromConfig(t)
if !assert.NoError(t, err) {
return
}
assert.Equal(t, curAccessToken, newAccessToken)
assert.Equal(t, curRefreshToken, newRefreshToken)
assert.Empty(t, newArtifactoryRefreshToken)

// Cleanup
cleanArtifactoryTest()
}

func getAccessTokensFromConfig(t *testing.T, serverId string) (accessToken, refreshToken string, err error) {
details, err := config.GetSpecificConfig(serverId, false, false)
// After refreshing an access token, assert that the access token and the refresh token were changed, and the Artifactory refresh token remained empty.
func assertAccessTokensChanged(t *testing.T, curAccessToken, curRefreshToken string) (newAccessToken, newRefreshToken string, err error) {
var newArtifactoryRefreshToken string
newAccessToken, newRefreshToken, newArtifactoryRefreshToken, err = getTokensFromConfig(t)
if err != nil {
assert.NoError(t, err)
return "", "", err
}
return details.AccessToken, details.RefreshToken, nil
assert.NotEqual(t, curAccessToken, newAccessToken)
assert.NotEqual(t, curRefreshToken, newRefreshToken)
assert.Empty(t, newArtifactoryRefreshToken)
return newAccessToken, newRefreshToken, nil
}

const (
Expand Down
33 changes: 19 additions & 14 deletions artifactory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5343,12 +5343,13 @@ func TestRefreshableArtifactoryTokens(t *testing.T) {
if err != nil {
return
}
curAccessToken, curRefreshToken, err := getArtifactoryTokensFromConfig(t)
curAccessToken, curRefreshToken, curArtifactoryRefreshToken, err := getTokensFromConfig(t)
if err != nil {
return
}
assert.NotEmpty(t, curAccessToken)
assert.NotEmpty(t, curRefreshToken)
assert.NotEmpty(t, curArtifactoryRefreshToken)
assert.Empty(t, curRefreshToken)

// Make the token always refresh.
auth.RefreshArtifactoryTokenBeforeExpiryMinutes = 60
Expand All @@ -5359,7 +5360,7 @@ func TestRefreshableArtifactoryTokens(t *testing.T) {
if err != nil {
return
}
curAccessToken, curRefreshToken, err = assertTokensChanged(t, curAccessToken, curRefreshToken)
curAccessToken, curArtifactoryRefreshToken, err = assertArtifactoryTokensChanged(t, curAccessToken, curArtifactoryRefreshToken)
if err != nil {
return
}
Expand All @@ -5374,7 +5375,7 @@ func TestRefreshableArtifactoryTokens(t *testing.T) {
if err != nil {
return
}
curAccessToken, curRefreshToken, err = assertTokensChanged(t, curAccessToken, curRefreshToken)
curAccessToken, curArtifactoryRefreshToken, err = assertArtifactoryTokensChanged(t, curAccessToken, curArtifactoryRefreshToken)
if err != nil {
return
}
Expand All @@ -5389,7 +5390,7 @@ func TestRefreshableArtifactoryTokens(t *testing.T) {
if err != nil {
return
}
curAccessToken, curRefreshToken, err = assertTokensChanged(t, curAccessToken, curRefreshToken)
curAccessToken, curArtifactoryRefreshToken, err = assertArtifactoryTokensChanged(t, curAccessToken, curArtifactoryRefreshToken)
if err != nil {
return
}
Expand All @@ -5401,12 +5402,13 @@ func TestRefreshableArtifactoryTokens(t *testing.T) {
if err != nil {
return
}
newAccessToken, newRefreshToken, err := getArtifactoryTokensFromConfig(t)
newAccessToken, newRefreshToken, newArtifactoryRefreshToken, err := getTokensFromConfig(t)
if err != nil {
return
}
assert.Equal(t, curAccessToken, newAccessToken)
assert.Equal(t, curRefreshToken, newRefreshToken)
assert.Equal(t, curArtifactoryRefreshToken, newArtifactoryRefreshToken)
assert.Empty(t, newRefreshToken)

// Cleanup
cleanArtifactoryTest()
Expand Down Expand Up @@ -5442,24 +5444,27 @@ func setPasswordInConfig(t *testing.T, serverId, password string) error {
return nil
}

func getArtifactoryTokensFromConfig(t *testing.T) (accessToken, refreshToken string, err error) {
func getTokensFromConfig(t *testing.T) (accessToken, refreshToken, artifactoryRefreshToken string, err error) {
details, err := config.GetSpecificConfig(tests.ServerId, false, false)
if err != nil {
assert.NoError(t, err)
return "", "", err
return "", "", "", err
}
return details.AccessToken, details.ArtifactoryRefreshToken, nil
return details.AccessToken, details.RefreshToken, details.ArtifactoryRefreshToken, nil
}

func assertTokensChanged(t *testing.T, curAccessToken, curRefreshToken string) (newAccessToken, newRefreshToken string, err error) {
newAccessToken, newRefreshToken, err = getArtifactoryTokensFromConfig(t)
// After refreshing an Artifactory access token, assert that the access token and the artifactory refresh token were changed, and refresh token remained empty.
func assertArtifactoryTokensChanged(t *testing.T, curAccessToken, curArtifactoryRefreshToken string) (newAccessToken, newArtifactoryRefreshToken string, err error) {
var newRefreshToken string
newAccessToken, newRefreshToken, newArtifactoryRefreshToken, err = getTokensFromConfig(t)
if err != nil {
assert.NoError(t, err)
return "", "", err
}
assert.NotEqual(t, curAccessToken, newAccessToken)
assert.NotEqual(t, curRefreshToken, newRefreshToken)
return newAccessToken, newRefreshToken, nil
assert.NotEqual(t, curArtifactoryRefreshToken, newArtifactoryRefreshToken)
assert.Empty(t, newRefreshToken)
return newAccessToken, newArtifactoryRefreshToken, nil
}

func uploadWithSpecificServerAndVerify(t *testing.T, cli *coretests.JfrogCli, source string, expectedResults int) error {
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)

// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.31.1-0.20240408074156-13680c04f22e
replace github.com/jfrog/jfrog-cli-core/v2 => github.com/RobiNino/jfrog-cli-core/v2 v2.0.0-20240421173844-fad7a4a4d3ea

// replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240408071430-62ee0279ac58

Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7
github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w=
github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78=
github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/RobiNino/jfrog-cli-core/v2 v2.0.0-20240421173844-fad7a4a4d3ea h1:5EedDbrmNU1EeclN8Hccv3r4aSCHego1D7BgvzNyXVU=
github.com/RobiNino/jfrog-cli-core/v2 v2.0.0-20240421173844-fad7a4a4d3ea/go.mod h1:064wSSHVI3ZIVi/a94yJqzs+ACM+9JK/u9tQ1sfTK6A=
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4=
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8=
Expand Down Expand Up @@ -135,8 +137,6 @@ github.com/jfrog/gofrog v1.7.1 h1:ME1Meg4hukAT/7X6HUQCVSe4DNjMZACCP8aCY37EW/w=
github.com/jfrog/gofrog v1.7.1/go.mod h1:X7bjfWoQDN0Z4FQGbE91j3gbPP7Urwzm4Z8tkvrlbRI=
github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYLipdsOFMY=
github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w=
github.com/jfrog/jfrog-cli-core/v2 v2.51.0 h1:nESbCpSTPZx1av0W9tdmWLxKaPSL1SaZinbZGtYNeFI=
github.com/jfrog/jfrog-cli-core/v2 v2.51.0/go.mod h1:064wSSHVI3ZIVi/a94yJqzs+ACM+9JK/u9tQ1sfTK6A=
github.com/jfrog/jfrog-cli-security v1.1.0 h1:ifCjFJSa1D1pWyW/ADYPqnMkOddzkAT/WY4vHAufn1g=
github.com/jfrog/jfrog-cli-security v1.1.0/go.mod h1:086t7e/einVAGfBXxRdEGDKovWt67I6SqUb1rcpdiZc=
github.com/jfrog/jfrog-client-go v1.40.1 h1:ISSSV7/IUS8R+QCPfH2lVKLburbv2Xn07fvNyDc17rI=
Expand Down

0 comments on commit d984a2b

Please sign in to comment.