mirror of
https://github.com/mxpv/podsync.git
synced 2024-05-11 05:55:04 +00:00
Add CLI main and TOML configuration
This commit is contained in:
53
pkg/config/config_test.go
Normal file
53
pkg/config/config_test.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestLoadConfig(t *testing.T) {
|
||||
const file = `
|
||||
data_dir = "test/data/"
|
||||
port = 80
|
||||
|
||||
[tokens]
|
||||
youtube = "123"
|
||||
vimeo = "321"
|
||||
|
||||
[feeds]
|
||||
[feeds.XYZ]
|
||||
url = "https://youtube.com/watch?v=ygIUF678y40"
|
||||
page_size = 50
|
||||
update_period = "5h"
|
||||
`
|
||||
|
||||
f, err := ioutil.TempFile("", "")
|
||||
require.NoError(t, err)
|
||||
|
||||
defer os.Remove(f.Name())
|
||||
|
||||
_, err = f.WriteString(file)
|
||||
require.NoError(t, err)
|
||||
|
||||
config, err := LoadConfig(f.Name())
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, config)
|
||||
|
||||
assert.Equal(t, "test/data/", config.DataDir)
|
||||
assert.EqualValues(t, 80, config.Port)
|
||||
|
||||
assert.Equal(t, "123", config.Tokens.YouTube)
|
||||
assert.Equal(t, "321", config.Tokens.Vimeo)
|
||||
|
||||
assert.Len(t, config.Feeds, 1)
|
||||
feed, ok := config.Feeds["XYZ"]
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "https://youtube.com/watch?v=ygIUF678y40", feed.URL)
|
||||
assert.EqualValues(t, 50, feed.PageSize)
|
||||
assert.EqualValues(t, Duration{5 * time.Hour}, feed.UpdatePeriod)
|
||||
}
|
Reference in New Issue
Block a user