(ctx context.Context, client *gcpspanner.Client, helper *featuresHelper)
| 388 | } |
| 389 | releasesGenerated++ |
| 390 | } |
| 391 | } |
| 392 | |
| 393 | return releasesGenerated, nil |
| 394 | } |
| 395 | |
| 396 | func generateFeatures( |
| 397 | ctx context.Context, client *gcpspanner.Client, helper *featuresHelper) ( |
| 398 | []gcpspanner.SpannerWebFeature, map[string]string, error) { |
| 399 | features := make([]gcpspanner.SpannerWebFeature, 0, numberOfFeatures) |
| 400 | featureIDMap := make(map[string]any) |
| 401 | webFeatureKeyToInternalFeatureID := map[string]string{} |
| 402 | |
| 403 | realFeatureDetails := getSpecialFeatureDetails() |
| 404 | for idx := range numberOfFeatures { |
| 405 | word := fmt.Sprintf("%s%d", gofakeit.LoremIpsumWord(), len(featureIDMap)) |
| 406 | featureName := cases.Title(language.English).String(word) |
| 407 | featureID := strings.ToLower(featureName) |
| 408 | if idx < len(realFeatureDetails) { |
| 409 | word = realFeatureDetails[idx].name |
| 410 | featureID = realFeatureDetails[idx].id |
| 411 | featureName = realFeatureDetails[idx].name |
| 412 | } |
| 413 | |
| 414 | // Check if we already generated this ID. |
| 415 | if _, alreadyUsed := featureIDMap[word]; alreadyUsed { |
| 416 | continue |
| 417 | } |
| 418 | // Add it to the map. |
| 419 | featureIDMap[word] = nil |
| 420 | feature := gcpspanner.WebFeature{ |
| 421 | Name: featureName, |
| 422 | FeatureKey: featureID, |
| 423 | Description: fmt.Sprintf("description for %s", featureName), |
| 424 | DescriptionHTML: fmt.Sprintf("description for <b>%s</b>", featureName), |
| 425 | } |
| 426 | helper.AddFeature(feature) |
| 427 | } |
| 428 |
no test coverage detected