@@ -1079,6 +1079,77 @@ func TestReleaseBundlesSearchVersions(t *testing.T) {
10791079 },
10801080 }
10811081
1082+ // Setup for project test case
1083+ projectRbName := "my-versioned-app-project"
1084+ projectVersionA := "1.0.0"
1085+ projectVersionB := "1.0.1"
1086+
1087+ // Setup: Create test project and upload builds with project
1088+ deleteProject := createTestProject (t )
1089+ if deleteProject != nil {
1090+ defer func () {
1091+ if err := deleteProject (); err != nil {
1092+ t .Logf ("Warning: Failed to delete test project: %v" , err )
1093+ }
1094+ }()
1095+ }
1096+
1097+ deleteBuildsWithProject := uploadBuildsWithProject (t )
1098+ defer deleteBuildsWithProject ()
1099+
1100+ // Delete existing release bundle versions with project
1101+ for _ , version := range []string {projectVersionA , projectVersionB } {
1102+ isExist , err := lcManager .IsReleaseBundleExist (projectRbName , version , tests .ProjectKey )
1103+ if err == nil && isExist {
1104+ rbDetails := services.ReleaseBundleDetails {
1105+ ReleaseBundleName : projectRbName ,
1106+ ReleaseBundleVersion : version ,
1107+ }
1108+ err := lcManager .DeleteReleaseBundleVersion (rbDetails , services.CommonOptionalQueryParams {Async : false , ProjectKey : tests .ProjectKey })
1109+ if err != nil {
1110+ if ! strings .Contains (err .Error (), "404" ) && ! strings .Contains (err .Error (), "not found" ) {
1111+ t .Logf ("Warning: Failed to delete release bundle %s/%s: %v" , projectRbName , version , err )
1112+ }
1113+ } else {
1114+ time .Sleep (5 * time .Second )
1115+ }
1116+ }
1117+ }
1118+
1119+ // Create release bundles with project
1120+ createRbWithFlags (t , "" , "" , tests .LcBuildName1 , number1 , projectRbName , projectVersionA , tests .ProjectKey , true , false )
1121+ defer deleteReleaseBundleWithProject (t , lcManager , projectRbName , projectVersionA , tests .ProjectKey )
1122+ assertStatusCompletedWithProject (t , lcManager , projectRbName , projectVersionA , "" , tests .ProjectKey )
1123+
1124+ time .Sleep (1 * time .Second )
1125+
1126+ createRbWithFlags (t , "" , "" , tests .LcBuildName2 , number2 , projectRbName , projectVersionB , tests .ProjectKey , true , false )
1127+ defer deleteReleaseBundleWithProject (t , lcManager , projectRbName , projectVersionB , tests .ProjectKey )
1128+ assertStatusCompletedWithProject (t , lcManager , projectRbName , projectVersionB , "" , tests .ProjectKey )
1129+
1130+ log .Info ("Created two versions for release bundle '%s' with project for search testing." , projectRbName )
1131+ time .Sleep (3 * time .Second )
1132+
1133+ // Add project test case to existing testCases
1134+ testCases = append (testCases , struct {
1135+ name string
1136+ releaseBundleName string
1137+ queryParams services.GetSearchOptionalQueryParams
1138+ expectedRbVersions []string
1139+ expectedTotal int
1140+ expectError bool
1141+ errorMessage string
1142+ }{
1143+ name : "Search with project" ,
1144+ releaseBundleName : projectRbName ,
1145+ queryParams : services.GetSearchOptionalQueryParams {
1146+ Project : tests .ProjectKey ,
1147+ },
1148+ expectedRbVersions : []string {projectVersionA , projectVersionB },
1149+ expectedTotal : 2 ,
1150+ expectError : false ,
1151+ })
1152+
10821153 for _ , tc := range testCases {
10831154 t .Run (tc .name , func (t * testing.T ) {
10841155 var resp services.ReleaseBundleVersionsResponse
0 commit comments