Added unit tests

This commit is contained in:
Andrew Nester 2023-07-04 13:06:07 +02:00
parent 24e857e380
commit d7d6f4eeac
No known key found for this signature in database
GPG Key ID: 12BC628A44B7DA57
5 changed files with 52 additions and 1 deletions

View File

@ -52,7 +52,7 @@ func (m *processRootIncludes) Apply(ctx context.Context, b *bundle.Bundle) error
// If the entry is not a glob pattern and no matches found,
// return an error because the file defined is not found
if len(matches) == 0 && !strings.Contains(entry, "*") {
if len(matches) == 0 && !strings.ContainsAny(entry, "*?[") {
return fmt.Errorf("%s defined in 'include' section does not match any files", entry)
}

View File

@ -0,0 +1,5 @@
bundle:
name: include_invalid
include:
- notexists.yml

View File

@ -0,0 +1,35 @@
package config_tests
import (
"context"
"path/filepath"
"sort"
"testing"
"github.com/databricks/cli/bundle"
"github.com/databricks/cli/bundle/config/mutator"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"golang.org/x/exp/maps"
)
func TestIncludeInvalid(t *testing.T) {
b, err := bundle.Load("./include_invalid")
require.NoError(t, err)
err = bundle.Apply(context.Background(), b, bundle.Seq(mutator.DefaultMutators()...))
require.Error(t, err)
assert.Contains(t, err.Error(), "notexists.yml defined in 'include' section does not match any files")
}
func TestIncludeWithGlob(t *testing.T) {
b := load(t, "./include_with_glob")
// Test that both jobs were loaded.
keys := maps.Keys(b.Config.Resources.Jobs)
sort.Strings(keys)
assert.Equal(t, []string{"my_job"}, keys)
job := b.Config.Resources.Jobs["my_job"]
assert.Equal(t, "1", job.ID)
assert.Equal(t, "include_with_glob/job.yml", filepath.ToSlash(job.ConfigFilePath))
}

View File

@ -0,0 +1,7 @@
bundle:
name: include_with_glob
include:
- "*.yml"
- "?.yml"
- "[a-z].yml"

View File

@ -0,0 +1,4 @@
resources:
jobs:
my_job:
id: 1