package resources import ( "testing" "github.com/databricks/cli/bundle" "github.com/databricks/cli/bundle/config" "github.com/databricks/cli/bundle/config/resources" "github.com/databricks/databricks-sdk-go/service/jobs" "github.com/databricks/databricks-sdk-go/service/pipelines" "github.com/stretchr/testify/assert" ) func TestCompletions_SkipDuplicates(t *testing.T) { b := &bundle.Bundle{ Config: config.Root{ Resources: config.Resources{ Jobs: map[string]*resources.Job{ "foo": { JobSettings: &jobs.JobSettings{}, }, "bar": { JobSettings: &jobs.JobSettings{}, }, }, Pipelines: map[string]*resources.Pipeline{ "foo": { PipelineSpec: &pipelines.PipelineSpec{}, }, }, }, }, } // Test that this skips duplicates and only includes unambiguous completions. out := Completions(b) if assert.Len(t, out, 1) { assert.Contains(t, out, "bar") } } func TestCompletions_Filter(t *testing.T) { b := &bundle.Bundle{ Config: config.Root{ Resources: config.Resources{ Jobs: map[string]*resources.Job{ "foo": { JobSettings: &jobs.JobSettings{}, }, }, Pipelines: map[string]*resources.Pipeline{ "bar": { PipelineSpec: &pipelines.PipelineSpec{}, }, }, }, }, } includeJobs := func(ref Reference) bool { _, ok := ref.Resource.(*resources.Job) return ok } // Test that this does not include the pipeline. out := Completions(b, includeJobs) if assert.Len(t, out, 1) { assert.Contains(t, out, "foo") } }