@@ -15,6 +15,7 @@ import (
1515
1616 "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
1717 "github.com/jfrog/jfrog-cli-core/v2/utils/log"
18+ artifactoryAuth "github.com/jfrog/jfrog-client-go/artifactory/auth"
1819 "github.com/jfrog/jfrog-client-go/utils/io/fileutils"
1920 "github.com/stretchr/testify/assert"
2021)
@@ -421,3 +422,104 @@ func assertCertsMigration(t *testing.T) {
421422 // Verify only the certs were moved
422423 assert .Len (t , files , 2 )
423424}
425+
426+ func TestCreateAuthConfigAppendPreRequestFunctionBehavior (t * testing.T ) {
427+ test := []struct {
428+ name string
429+ serverDetails * ServerDetails
430+ shouldCallAppendPreRequest bool
431+ }{
432+ {
433+ name : "DisableTokenRefreshTrue_NoRefreshTokens" ,
434+ serverDetails : & ServerDetails {
435+ ServerId : "test-server" ,
436+ AccessToken : "access-token-123" ,
437+ User : "testuser" ,
438+ Password : "testpass" ,
439+ DisableTokenRefresh : true ,
440+ },
441+ shouldCallAppendPreRequest : false ,
442+ },
443+ {
444+ name : "DisableTokenRefreshTrue_WithRefreshToken" ,
445+ serverDetails : & ServerDetails {
446+ ServerId : "test-server" ,
447+ AccessToken : "access-token-123" ,
448+ RefreshToken : "refresh-token-456" ,
449+ User : "testuser" ,
450+ Password : "testpass" ,
451+ DisableTokenRefresh : true ,
452+ },
453+ shouldCallAppendPreRequest : false ,
454+ },
455+ {
456+ name : "DisableTokenRefreshFalse_WithRefreshToken" ,
457+ serverDetails : & ServerDetails {
458+ ServerId : "test-server" ,
459+ AccessToken : "access-token-123" ,
460+ RefreshToken : "refresh-token-456" ,
461+ User : "testuser" ,
462+ Password : "testpass" ,
463+ DisableTokenRefresh : false ,
464+ },
465+ shouldCallAppendPreRequest : true ,
466+ },
467+ {
468+ name : "DisableTokenRefreshDefault_WithRefreshToken" ,
469+ serverDetails : & ServerDetails {
470+ ServerId : "test-server" ,
471+ AccessToken : "access-token-123" ,
472+ RefreshToken : "refresh-token-456" ,
473+ User : "testuser" ,
474+ Password : "testpass" ,
475+ },
476+ shouldCallAppendPreRequest : true ,
477+ },
478+ {
479+ name : "DisableTokenRefreshTrue_WithArtifactoryRefreshToken" ,
480+ serverDetails : & ServerDetails {
481+ ServerId : "test-server" ,
482+ AccessToken : "access-token-123" ,
483+ ArtifactoryRefreshToken : "artifactory-refresh-token-789" ,
484+ User : "testuser" ,
485+ Password : "testpass" ,
486+ DisableTokenRefresh : true ,
487+ },
488+ shouldCallAppendPreRequest : true ,
489+ },
490+ {
491+ name : "DisableTokenRefreshFalse_WithArtifactoryRefreshToken" ,
492+ serverDetails : & ServerDetails {
493+ ServerId : "test-server" ,
494+ AccessToken : "access-token-123" ,
495+ ArtifactoryRefreshToken : "artifactory-refresh-token-789" ,
496+ User : "testuser" ,
497+ Password : "testpass" ,
498+ DisableTokenRefresh : false ,
499+ },
500+ shouldCallAppendPreRequest : true ,
501+ },
502+ }
503+
504+ for _ , tt := range test {
505+ t .Run (tt .name , func (t * testing.T ) {
506+ artDetails := artifactoryAuth .NewArtifactoryDetails ()
507+ artDetails .SetUrl ("https://test.com/artifactory/" )
508+
509+ result , err := tt .serverDetails .createAuthConfig (artDetails )
510+
511+ assert .NoError (t , err )
512+ assert .Equal (t , artDetails , result )
513+
514+ if tt .shouldCallAppendPreRequest {
515+ // AppendPreRequestFunction was called - should use token refresh, not basic auth
516+ assert .Equal (t , "" , result .GetUser (), "User should be empty when AppendPreRequestFunction is called (token refresh enabled)" )
517+ assert .Equal (t , "" , result .GetPassword (), "Password should be empty when AppendPreRequestFunction is called (token refresh enabled)" )
518+ } else {
519+ // AppendPreRequestFunction was NOT called - should use basic auth
520+ assert .Equal (t , tt .serverDetails .User , result .GetUser (), "User should be set when AppendPreRequestFunction is NOT called (basic auth)" )
521+ assert .Equal (t , tt .serverDetails .Password , result .GetPassword (), "Password should be set when AppendPreRequestFunction is NOT called (basic auth)" )
522+ }
523+ })
524+ }
525+ }
0 commit comments