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	config := repo.LocalConfig()
15
16	err := config.Store("section.key", "value")
17	assert.NoError(t, err)
18
19	val, err := config.ReadString("section.key")
20	assert.Equal(t, "value", val)
21
22	err = config.Store("section.true", "true")
23	assert.NoError(t, err)
24
25	val2, err := config.ReadBool("section.true")
26	assert.Equal(t, true, val2)
27
28	configs, err := config.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 = config.RemoveAll("section.true")
36	assert.NoError(t, err)
37
38	configs, err = config.ReadAll("section")
39	assert.NoError(t, err)
40	assert.Equal(t, configs, map[string]string{
41		"section.key": "value",
42	})
43
44	_, err = config.ReadBool("section.true")
45	assert.Equal(t, ErrNoConfigEntry, err)
46
47	err = config.RemoveAll("section.nonexistingkey")
48	assert.Error(t, err)
49
50	err = config.RemoveAll("section.key")
51	assert.NoError(t, err)
52
53	_, err = config.ReadString("section.key")
54	assert.Equal(t, ErrNoConfigEntry, err)
55
56	err = config.RemoveAll("nonexistingsection")
57	assert.Error(t, err)
58
59	err = config.RemoveAll("section")
60	assert.Error(t, err)
61
62	_, err = config.ReadString("section.key")
63	assert.Error(t, err)
64
65	err = config.RemoveAll("section.key")
66	assert.Error(t, err)
67}