diff --git a/tools/diff-processor/cmd/detect_missing_docs.go b/tools/diff-processor/cmd/detect_missing_docs.go index 080bd77f8345..ed4fa7ce5a63 100644 --- a/tools/diff-processor/cmd/detect_missing_docs.go +++ b/tools/diff-processor/cmd/detect_missing_docs.go @@ -59,44 +59,16 @@ func (o *detectMissingDocsOptions) run(args []string) error { if err != nil { return err } - resources := maps.Keys(detectedResources) - slices.Sort(resources) - resourceInfo := []detector.MissingDocDetails{} - for _, r := range resources { - details := detectedResources[r] - sort.Slice(details.Fields, func(i, j int) bool { - return details.Fields[i].Field < details.Fields[j].Field - }) - resourceInfo = append(resourceInfo, detector.MissingDocDetails{ - Name: r, - FilePath: details.FilePath, - Fields: details.Fields, - }) - } datasourceSchemaDiff := o.computeDatasourceSchemaDiff() detectedDataSources, err := detector.DetectMissingDocsForDatasource(datasourceSchemaDiff, args[0]) if err != nil { return err } - dataSources := maps.Keys(detectedDataSources) - slices.Sort(dataSources) - dataSourceInfo := []detector.MissingDocDetails{} - for _, r := range resources { - details := detectedDataSources[r] - sort.Slice(details.Fields, func(i, j int) bool { - return details.Fields[i].Field < details.Fields[j].Field - }) - dataSourceInfo = append(dataSourceInfo, detector.MissingDocDetails{ - Name: r, - FilePath: details.FilePath, - Fields: details.Fields, - }) - } sum := MissingDocsSummary{ - Resource: resourceInfo, - DataSource: dataSourceInfo, + Resource: sortMissingDocDetails(detectedResources), + DataSource: sortMissingDocDetails(detectedDataSources), } if err := json.NewEncoder(o.stdout).Encode(sum); err != nil { @@ -105,3 +77,21 @@ func (o *detectMissingDocsOptions) run(args []string) error { return nil } + +func sortMissingDocDetails(m map[string]detector.MissingDocDetails) []detector.MissingDocDetails { + itemNames := maps.Keys(m) + slices.Sort(itemNames) + arr := []detector.MissingDocDetails{} + for _, itemName := range itemNames { + details := m[itemName] + sort.Slice(details.Fields, func(i, j int) bool { + return details.Fields[i].Field < details.Fields[j].Field + }) + arr = append(arr, detector.MissingDocDetails{ + Name: itemName, + FilePath: details.FilePath, + Fields: details.Fields, + }) + } + return arr +} diff --git a/tools/diff-processor/cmd/detect_missing_docs_test.go b/tools/diff-processor/cmd/detect_missing_docs_test.go index 615ff3041b92..549bc95ed4d3 100644 --- a/tools/diff-processor/cmd/detect_missing_docs_test.go +++ b/tools/diff-processor/cmd/detect_missing_docs_test.go @@ -14,10 +14,12 @@ import ( func TestDetectMissingDocs(t *testing.T) { cases := []struct { - name string - oldResourceMap map[string]*schema.Resource - newResourceMap map[string]*schema.Resource - want MissingDocsSummary + name string + oldResourceMap map[string]*schema.Resource + newResourceMap map[string]*schema.Resource + oldDataSourceMap map[string]*schema.Resource + newDataSourceMap map[string]*schema.Resource + want MissingDocsSummary }{ { name: "no new fields", @@ -53,6 +55,14 @@ func TestDetectMissingDocs(t *testing.T) { }, }, oldResourceMap: map[string]*schema.Resource{}, + newDataSourceMap: map[string]*schema.Resource{ + "google_data_y": { + Schema: map[string]*schema.Schema{ + "field-a": {Description: "beep"}, + }, + }, + }, + oldDataSourceMap: map[string]*schema.Resource{}, want: MissingDocsSummary{ Resource: []detector.MissingDocDetails{ { @@ -72,15 +82,12 @@ func TestDetectMissingDocs(t *testing.T) { }, DataSource: []detector.MissingDocDetails{ { - Name: "google_x", - FilePath: "/website/docs/d/x.html.markdown", + Name: "google_data_y", + FilePath: "/website/docs/d/data_y.html.markdown", Fields: []detector.MissingDocField{ { Field: "field-a", }, - { - Field: "field-b", - }, }, }, }, @@ -96,7 +103,7 @@ func TestDetectMissingDocs(t *testing.T) { return diff.ComputeSchemaDiff(tc.oldResourceMap, tc.newResourceMap) }, computeDatasourceSchemaDiff: func() diff.SchemaDiff { - return diff.ComputeSchemaDiff(tc.oldResourceMap, tc.newResourceMap) + return diff.ComputeSchemaDiff(tc.oldDataSourceMap, tc.newDataSourceMap) }, stdout: &buf, } diff --git a/tools/diff-processor/cmd/root.go b/tools/diff-processor/cmd/root.go index 0ecf9f3fad3d..d28ca886eea0 100644 --- a/tools/diff-processor/cmd/root.go +++ b/tools/diff-processor/cmd/root.go @@ -24,6 +24,7 @@ func newRootCmd() (*cobra.Command, *rootOptions, error) { cmd.AddCommand(newBreakingChangesCmd(o)) cmd.AddCommand(newChangedSchemaResourcesCmd(o)) cmd.AddCommand(newDetectMissingTestsCmd(o)) + cmd.AddCommand(newDetectMissingDocsCmd(o)) return cmd, o, nil }