158 lines
3.6 KiB
Go
158 lines
3.6 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/git-lfs/git-lfs/git"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestRemoteDefault(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"branch.unused.remote": []string{"a"},
|
|
"branch.unused.pushRemote": []string{"b"},
|
|
},
|
|
})
|
|
assert.Equal(t, "origin", cfg.Remote())
|
|
assert.Equal(t, "origin", cfg.PushRemote())
|
|
}
|
|
|
|
func TestRemoteBranchConfig(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"branch.master.remote": []string{"a"},
|
|
"branch.other.pushRemote": []string{"b"},
|
|
},
|
|
})
|
|
cfg.ref = &git.Ref{Name: "master"}
|
|
|
|
assert.Equal(t, "a", cfg.Remote())
|
|
assert.Equal(t, "a", cfg.PushRemote())
|
|
}
|
|
|
|
func TestRemotePushDefault(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"branch.master.remote": []string{"a"},
|
|
"remote.pushDefault": []string{"b"},
|
|
"branch.other.pushRemote": []string{"c"},
|
|
},
|
|
})
|
|
cfg.ref = &git.Ref{Name: "master"}
|
|
|
|
assert.Equal(t, "a", cfg.Remote())
|
|
assert.Equal(t, "b", cfg.PushRemote())
|
|
}
|
|
|
|
func TestRemoteBranchPushDefault(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"branch.master.remote": []string{"a"},
|
|
"remote.pushDefault": []string{"b"},
|
|
"branch.master.pushRemote": []string{"c"},
|
|
},
|
|
})
|
|
cfg.ref = &git.Ref{Name: "master"}
|
|
|
|
assert.Equal(t, "a", cfg.Remote())
|
|
assert.Equal(t, "c", cfg.PushRemote())
|
|
}
|
|
|
|
func TestBasicTransfersOnlySetValue(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"lfs.basictransfersonly": []string{"true"},
|
|
},
|
|
})
|
|
|
|
b := cfg.BasicTransfersOnly()
|
|
assert.Equal(t, true, b)
|
|
}
|
|
|
|
func TestBasicTransfersOnlyDefault(t *testing.T) {
|
|
cfg := NewFrom(Values{})
|
|
|
|
b := cfg.BasicTransfersOnly()
|
|
assert.Equal(t, false, b)
|
|
}
|
|
|
|
func TestBasicTransfersOnlyInvalidValue(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"lfs.basictransfersonly": []string{"wat"},
|
|
},
|
|
})
|
|
|
|
b := cfg.BasicTransfersOnly()
|
|
assert.Equal(t, false, b)
|
|
}
|
|
|
|
func TestTusTransfersAllowedSetValue(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"lfs.tustransfers": []string{"true"},
|
|
},
|
|
})
|
|
|
|
b := cfg.TusTransfersAllowed()
|
|
assert.Equal(t, true, b)
|
|
}
|
|
|
|
func TestTusTransfersAllowedDefault(t *testing.T) {
|
|
cfg := NewFrom(Values{})
|
|
|
|
b := cfg.TusTransfersAllowed()
|
|
assert.Equal(t, false, b)
|
|
}
|
|
|
|
func TestTusTransfersAllowedInvalidValue(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"lfs.tustransfers": []string{"wat"},
|
|
},
|
|
})
|
|
|
|
b := cfg.TusTransfersAllowed()
|
|
assert.Equal(t, false, b)
|
|
}
|
|
|
|
func TestLoadValidExtension(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"lfs.extension.foo.clean": []string{"foo-clean %f"},
|
|
"lfs.extension.foo.smudge": []string{"foo-smudge %f"},
|
|
"lfs.extension.foo.priority": []string{"2"},
|
|
},
|
|
})
|
|
|
|
ext := cfg.Extensions()["foo"]
|
|
|
|
assert.Equal(t, "foo", ext.Name)
|
|
assert.Equal(t, "foo-clean %f", ext.Clean)
|
|
assert.Equal(t, "foo-smudge %f", ext.Smudge)
|
|
assert.Equal(t, 2, ext.Priority)
|
|
}
|
|
|
|
func TestLoadInvalidExtension(t *testing.T) {
|
|
cfg := NewFrom(Values{})
|
|
ext := cfg.Extensions()["foo"]
|
|
|
|
assert.Equal(t, "", ext.Name)
|
|
assert.Equal(t, "", ext.Clean)
|
|
assert.Equal(t, "", ext.Smudge)
|
|
assert.Equal(t, 0, ext.Priority)
|
|
}
|
|
|
|
func TestFetchIncludeExcludesAreCleaned(t *testing.T) {
|
|
cfg := NewFrom(Values{
|
|
Git: map[string][]string{
|
|
"lfs.fetchinclude": []string{"/path/to/clean/"},
|
|
"lfs.fetchexclude": []string{"/other/path/to/clean/"},
|
|
},
|
|
})
|
|
|
|
assert.Equal(t, []string{"/path/to/clean"}, cfg.FetchIncludePaths())
|
|
assert.Equal(t, []string{"/other/path/to/clean"}, cfg.FetchExcludePaths())
|
|
}
|