mirror of https://github.com/databricks/cli.git
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
|
package apps
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"path/filepath"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/databricks/cli/bundle"
|
||
|
"github.com/databricks/cli/bundle/config"
|
||
|
"github.com/databricks/cli/bundle/config/mutator"
|
||
|
"github.com/databricks/cli/bundle/config/resources"
|
||
|
"github.com/databricks/cli/bundle/internal/bundletest"
|
||
|
"github.com/databricks/cli/internal/testutil"
|
||
|
"github.com/databricks/cli/libs/dyn"
|
||
|
"github.com/databricks/cli/libs/vfs"
|
||
|
"github.com/databricks/databricks-sdk-go/service/apps"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestAppsValidate(t *testing.T) {
|
||
|
tmpDir := t.TempDir()
|
||
|
testutil.Touch(t, tmpDir, "app1", "app.yml")
|
||
|
testutil.Touch(t, tmpDir, "app2", "app.py")
|
||
|
|
||
|
b := &bundle.Bundle{
|
||
|
BundleRootPath: tmpDir,
|
||
|
SyncRootPath: tmpDir,
|
||
|
SyncRoot: vfs.MustNew(tmpDir),
|
||
|
Config: config.Root{
|
||
|
Resources: config.Resources{
|
||
|
Apps: map[string]*resources.App{
|
||
|
"app1": {
|
||
|
App: &apps.App{
|
||
|
Name: "app1",
|
||
|
},
|
||
|
SourceCodePath: "./app1",
|
||
|
},
|
||
|
"app2": {
|
||
|
App: &apps.App{
|
||
|
Name: "app2",
|
||
|
},
|
||
|
SourceCodePath: "./app2",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
bundletest.SetLocation(b, ".", []dyn.Location{{File: filepath.Join(tmpDir, "databricks.yml")}})
|
||
|
|
||
|
diags := bundle.Apply(context.Background(), b, bundle.Seq(mutator.TranslatePaths(), Validate()))
|
||
|
require.Len(t, diags, 1)
|
||
|
require.Equal(t, "app.yml detected", diags[0].Summary)
|
||
|
require.Contains(t, diags[0].Detail, "app.yml and use 'config' property for app resource")
|
||
|
}
|