git_test.go

 1// Package repository contains helper methods for working with the Git repo.
 2package repository
 3
 4import (
 5	"testing"
 6
 7	"github.com/stretchr/testify/assert"
 8)
 9
10func TestConfig(t *testing.T) {
11	repo := CreateTestRepo(false)
12	defer CleanupTestRepos(t, repo)
13
14	err := repo.LocalConfig().StoreString("section.key", "value")
15	assert.NoError(t, err)
16
17	val, err := repo.LocalConfig().ReadString("section.key")
18	assert.NoError(t, err)
19	assert.Equal(t, "value", val)
20
21	err = repo.LocalConfig().StoreString("section.true", "true")
22	assert.NoError(t, err)
23
24	val2, err := repo.LocalConfig().ReadBool("section.true")
25	assert.NoError(t, err)
26	assert.Equal(t, true, val2)
27
28	configs, err := repo.LocalConfig().ReadAll("section")
29	assert.NoError(t, err)
30	assert.Equal(t, configs, map[string]string{
31		"section.key":  "value",
32		"section.true": "true",
33	})
34
35	err = repo.LocalConfig().RemoveAll("section.true")
36	assert.NoError(t, err)
37
38	configs, err = repo.LocalConfig().ReadAll("section")
39	assert.NoError(t, err)
40	assert.Equal(t, configs, map[string]string{
41		"section.key": "value",
42	})
43
44	_, err = repo.LocalConfig().ReadBool("section.true")
45	assert.Equal(t, ErrNoConfigEntry, err)
46
47	err = repo.LocalConfig().RemoveAll("section.nonexistingkey")
48	assert.Error(t, err)
49
50	err = repo.LocalConfig().RemoveAll("section.key")
51	assert.NoError(t, err)
52
53	_, err = repo.LocalConfig().ReadString("section.key")
54	assert.Equal(t, ErrNoConfigEntry, err)
55
56	err = repo.LocalConfig().RemoveAll("nonexistingsection")
57	assert.Error(t, err)
58
59	err = repo.LocalConfig().RemoveAll("section")
60	assert.Error(t, err)
61
62	_, err = repo.LocalConfig().ReadString("section.key")
63	assert.Error(t, err)
64
65	err = repo.LocalConfig().RemoveAll("section.key")
66	assert.Error(t, err)
67}