hub/commands/init_test.go

94 строки
2.3 KiB
Go

package commands
import (
"fmt"
"os"
"path/filepath"
"testing"
"github.com/bmizerany/assert"
"github.com/github/hub/github"
)
func setupInitContext() {
os.Setenv("HUB_PROTOCOL", "git")
os.Setenv("HUB_CONFIG", "")
github.CreateTestConfigs("jingweno", "123")
}
func TestEmptyParams(t *testing.T) {
setupInitContext()
args := NewArgs([]string{"init"})
err := transformInitArgs(args)
assert.Equal(t, nil, err)
assert.Equal(t, true, args.IsParamsEmpty())
}
func TestFlagToAddRemote(t *testing.T) {
setupInitContext()
args := NewArgs([]string{"init", "-g", "--quiet"})
err := transformInitArgs(args)
assert.Equal(t, nil, err)
commands := args.Commands()
assert.Equal(t, 2, len(commands))
assert.Equal(t, "git init --quiet", commands[0].String())
currentDir, err := os.Getwd()
assert.Equal(t, nil, err)
expected := fmt.Sprintf(
"git --git-dir %s remote add origin git@github.com:jingweno/%s.git",
filepath.Join(currentDir, ".git"),
filepath.Base(currentDir),
)
assert.Equal(t, expected, commands[1].String())
}
func TestInitInAnotherDir(t *testing.T) {
setupInitContext()
args := NewArgs([]string{"init", "-g", "--template", "mytpl", "--shared=umask", "my project"})
err := transformInitArgs(args)
assert.Equal(t, nil, err)
commands := args.Commands()
assert.Equal(t, 2, len(commands))
assert.Equal(t, "git init --template mytpl --shared=umask my project", commands[0].String())
currentDir, err := os.Getwd()
assert.Equal(t, nil, err)
expected := fmt.Sprintf(
"git --git-dir %s remote add origin git@github.com:jingweno/%s.git",
filepath.Join(currentDir, "my project", ".git"),
"my-project",
)
assert.Equal(t, expected, commands[1].String())
}
func TestSeparateGitDir(t *testing.T) {
setupInitContext()
args := NewArgs([]string{"init", "-g", "--separate-git-dir", "/tmp/where-i-play.git", "my/playground"})
err := transformInitArgs(args)
assert.Equal(t, nil, err)
commands := args.Commands()
assert.Equal(t, 2, len(commands))
assert.Equal(t, "git init --separate-git-dir /tmp/where-i-play.git my/playground", commands[0].String())
currentDir, err := os.Getwd()
assert.Equal(t, nil, err)
expected := fmt.Sprintf(
"git --git-dir %s remote add origin git@github.com:jingweno/%s.git",
filepath.Join(currentDir, "my", "playground", ".git"),
"playground",
)
assert.Equal(t, expected, commands[1].String())
}