mirror of https://github.com/databricks/cli.git
66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
|
package mutator_test
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"runtime"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/databricks/cli/bundle"
|
||
|
"github.com/databricks/cli/bundle/config/mutator"
|
||
|
"github.com/databricks/cli/libs/dbr"
|
||
|
"github.com/databricks/cli/libs/vfs"
|
||
|
"github.com/databricks/databricks-sdk-go/config"
|
||
|
"github.com/databricks/databricks-sdk-go/experimental/mocks"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func mockBundleForConfigureWSFS(t *testing.T, syncRootPath string) *bundle.Bundle {
|
||
|
// The native path of the sync root on Windows will never match the /Workspace prefix,
|
||
|
// so the test case for nominal behavior will always fail.
|
||
|
if runtime.GOOS == "windows" {
|
||
|
t.Skip("this test is not applicable on Windows")
|
||
|
}
|
||
|
|
||
|
b := &bundle.Bundle{
|
||
|
SyncRoot: vfs.MustNew(syncRootPath),
|
||
|
}
|
||
|
|
||
|
w := mocks.NewMockWorkspaceClient(t)
|
||
|
w.WorkspaceClient.Config = &config.Config{}
|
||
|
b.SetWorkpaceClient(w.WorkspaceClient)
|
||
|
|
||
|
return b
|
||
|
}
|
||
|
|
||
|
func TestConfigureWSFS_SkipsIfNotWorkspacePrefix(t *testing.T) {
|
||
|
b := mockBundleForConfigureWSFS(t, "/foo")
|
||
|
originalSyncRoot := b.SyncRoot
|
||
|
|
||
|
ctx := context.Background()
|
||
|
diags := bundle.Apply(ctx, b, mutator.ConfigureWSFS())
|
||
|
assert.Empty(t, diags)
|
||
|
assert.Equal(t, originalSyncRoot, b.SyncRoot)
|
||
|
}
|
||
|
|
||
|
func TestConfigureWSFS_SkipsIfNotRunningOnRuntime(t *testing.T) {
|
||
|
b := mockBundleForConfigureWSFS(t, "/Workspace/foo")
|
||
|
originalSyncRoot := b.SyncRoot
|
||
|
|
||
|
ctx := context.Background()
|
||
|
ctx = dbr.MockRuntime(ctx, false)
|
||
|
diags := bundle.Apply(ctx, b, mutator.ConfigureWSFS())
|
||
|
assert.Empty(t, diags)
|
||
|
assert.Equal(t, originalSyncRoot, b.SyncRoot)
|
||
|
}
|
||
|
|
||
|
func TestConfigureWSFS_SwapSyncRoot(t *testing.T) {
|
||
|
b := mockBundleForConfigureWSFS(t, "/Workspace/foo")
|
||
|
originalSyncRoot := b.SyncRoot
|
||
|
|
||
|
ctx := context.Background()
|
||
|
ctx = dbr.MockRuntime(ctx, true)
|
||
|
diags := bundle.Apply(ctx, b, mutator.ConfigureWSFS())
|
||
|
assert.Empty(t, diags)
|
||
|
assert.NotEqual(t, originalSyncRoot, b.SyncRoot)
|
||
|
}
|