restictray/restic/config_test.go

47 lines
1.3 KiB
Go

package restic
import (
"github.com/stretchr/testify/assert"
"io/fs"
"os"
"testing"
)
func init() {
configDir = "./"
os.RemoveAll("config.json")
}
func TestReadConfig_NoFile_Error(t *testing.T) {
config, err := ReadConfig()
assert.Nilf(t, config, "expected config to be nil")
assert.Error(t, err)
}
func TestReadConfig_MalformedJSON_Error(t *testing.T) {
os.WriteFile("config.json", []byte("{ whoops"), fs.ModePerm)
config, err := ReadConfig()
assert.Nilf(t, config, "expected config to be nil")
assert.ErrorContainsf(t, err, "malformed", "expected err to contain malformed msg")
}
func TestReadConfig_ValidJSONFile_Ok(t *testing.T) {
os.WriteFile("config.json", []byte("{\"backupTimeInHours\": 5, \"repository\": \"repodir\", \"backup\": \"backupfiles\"}"), fs.ModePerm)
config, err := ReadConfig()
assert.NoError(t, err)
assert.Equal(t, 5, config.BackupTimeInHours)
assert.Equal(t, "repodir", config.Repository)
assert.Equal(t, "backupfiles", config.Backup)
}
func TestReadConfig_WithoutBackupTime_DefaultsTo24hrs(t *testing.T) {
os.WriteFile("config.json", []byte("{\"repository\": \"repodir\", \"backup\": \"backupfiles\"}"), fs.ModePerm)
config, err := ReadConfig()
assert.NoError(t, err)
assert.Equal(t, 24, config.BackupTimeInHours)
assert.Equal(t, "repodir", config.Repository)
assert.Equal(t, "backupfiles", config.Backup)
}