As part of the unification it became clear where we did not support features that we had for the local backend. I opened issues and added comments.
102 lines
2.9 KiB
Go
102 lines
2.9 KiB
Go
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
|
|
|
package tests
|
|
|
|
import (
|
|
"os"
|
|
"path"
|
|
"testing"
|
|
|
|
ptesting "github.com/pulumi/pulumi/pkg/testing"
|
|
"github.com/pulumi/pulumi/pkg/testing/integration"
|
|
"github.com/pulumi/pulumi/pkg/workspace"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestPulumiInit(t *testing.T) {
|
|
t.Run("SanityTest", func(t *testing.T) {
|
|
e := ptesting.NewEnvironment(t)
|
|
defer func() {
|
|
if !t.Failed() {
|
|
e.DeleteEnvironment()
|
|
}
|
|
}()
|
|
|
|
// With a .git folder in the test root, `pulumi init` sets up shop there.
|
|
const dirName = workspace.BookkeepingDir
|
|
e.RunCommand("git", "init")
|
|
assert.False(t, e.PathExists(dirName), "expecting no %s folder yet", dirName)
|
|
e.RunCommand("pulumi", "init")
|
|
assert.True(t, e.PathExists(dirName), "expecting %s folder to be created", dirName)
|
|
})
|
|
|
|
t.Run("WalkUpToGitFolder", func(t *testing.T) {
|
|
e := ptesting.NewEnvironment(t)
|
|
defer func() {
|
|
if !t.Failed() {
|
|
e.DeleteEnvironment()
|
|
}
|
|
}()
|
|
|
|
// Create a git repo in the root.
|
|
e.RunCommand("git", "init")
|
|
assert.True(t, e.PathExists(".git"), "expecting .git folder")
|
|
|
|
// Create a subdirectory and CD into it.,
|
|
subdir := path.Join(e.RootPath, "/foo/bar/baz/")
|
|
err := os.MkdirAll(subdir, os.ModePerm)
|
|
assert.NoError(t, err, "error creating subdirectory")
|
|
e.CWD = subdir
|
|
|
|
// Confirm we are in the new location (no .git folder found.)
|
|
assert.False(t, e.PathExists(".git"), "expecting no .git folder (in new dir)")
|
|
|
|
// pulumi init won't create the folder here, but rather along side .git.
|
|
const dirName = workspace.BookkeepingDir
|
|
assert.False(t, e.PathExists(dirName), "expecting no %s folder", dirName)
|
|
e.RunCommand("pulumi", "init")
|
|
assert.False(t, e.PathExists(dirName), "expecting no %s folder. still.", dirName)
|
|
|
|
e.CWD = e.RootPath
|
|
assert.True(t, e.PathExists(dirName), "expecting %s folder to exist (next to .git)", dirName)
|
|
})
|
|
|
|
t.Run("DefaultRepositoryInfo", func(t *testing.T) {
|
|
e := ptesting.NewEnvironment(t)
|
|
defer func() {
|
|
if !t.Failed() {
|
|
e.DeleteEnvironment()
|
|
}
|
|
}()
|
|
|
|
e.RunCommand("git", "init")
|
|
e.RunCommand("pulumi", "init")
|
|
|
|
// Defaults
|
|
repo := integration.GetRepository(e)
|
|
testRootName := path.Base(e.RootPath)
|
|
assert.Equal(t, os.Getenv("USER"), repo.Owner)
|
|
assert.Equal(t, testRootName, repo.Name)
|
|
assert.Equal(t, "", repo.Root)
|
|
})
|
|
|
|
t.Run("ReadRemoteInfo", func(t *testing.T) {
|
|
e := ptesting.NewEnvironment(t)
|
|
defer func() {
|
|
if !t.Failed() {
|
|
e.DeleteEnvironment()
|
|
}
|
|
}()
|
|
|
|
e.RunCommand("git", "init")
|
|
e.RunCommand("git", "remote", "add", "not-origin", "git@github.com:moolumi/pasture.git")
|
|
e.RunCommand("git", "remote", "add", "origin", "git@github.com:pulumi/pulumi-cloud.git")
|
|
e.RunCommand("pulumi", "init")
|
|
|
|
// We pick up the settings from "origin", not any other remote name.
|
|
repo := integration.GetRepository(e)
|
|
assert.Equal(t, "pulumi", repo.Owner)
|
|
assert.Equal(t, "pulumi-cloud", repo.Name)
|
|
assert.Equal(t, "", repo.Root)
|
|
})
|
|
}
|