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