76 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package config
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| func TestLoad(t *testing.T) {
 | |
| 	f, _ := os.CreateTemp("", "test")
 | |
| 	ConfigPath = f.Name()
 | |
| 	defer f.Close()
 | |
| 	fmt.Fprint(f, `[input]
 | |
| ext = "log"`)
 | |
| 	c, err := Load()
 | |
| 	require.NoError(t, err)
 | |
| 	assert.Equal(t, "log", c.Input.Ext)
 | |
| }
 | |
| 
 | |
| func TestLoadBadFile(t *testing.T) {
 | |
| 	f, _ := os.CreateTemp("", "test")
 | |
| 	ConfigPath = f.Name()
 | |
| 	defer f.Close()
 | |
| 	fmt.Fprint(f, `{"not":"toml"}`)
 | |
| 	_, err := Load()
 | |
| 	assert.Error(t, err)
 | |
| }
 | |
| 
 | |
| func TestLoadIgnoreMissingFile(t *testing.T) {
 | |
| 	def, _ := DefaultConfig()
 | |
| 	ConfigPath = "/not/a/real/file"
 | |
| 	c, err := Load()
 | |
| 	require.NoError(t, err)
 | |
| 	assert.Equal(t, def, c)
 | |
| }
 | |
| 
 | |
| func TestOverride(t *testing.T) {
 | |
| 	Overrides = map[string]string{
 | |
| 		"input.path": "/path/to/it",
 | |
| 		"input.ext":  "~",
 | |
| 	}
 | |
| 	c, err := Load()
 | |
| 	require.NoError(t, err)
 | |
| 	assert.Equal(t, Overrides["input.path"], c.Input.Path)
 | |
| 	assert.Equal(t, "txt", c.Input.Ext)
 | |
| }
 | |
| 
 | |
| func TestOverrideJson(t *testing.T) {
 | |
| 	Overrides = map[string]string{"input.ext": `{"a":"b"}`}
 | |
| 	c, err := Load()
 | |
| 	require.NoError(t, err)
 | |
| 	assert.Equal(t, "txt", c.Input.Ext)
 | |
| }
 | |
| 
 | |
| // @todo test time
 | |
| 
 | |
| func TestStdoutMissing(t *testing.T) {
 | |
| 	var oo Outputs = map[string]Output{}
 | |
| 	std, en := oo.Stdout()
 | |
| 	assert.False(t, en)
 | |
| 	assert.Equal(t, Stdout{}, std)
 | |
| }
 | |
| 
 | |
| func TestStdoutLoad(t *testing.T) {
 | |
| 	os.Setenv("LOG_STDOUT_JSON", "true")
 | |
| 	defer os.Unsetenv("LOG_STDOUT_JSON")
 | |
| 	os.Setenv("LOG_STDOUT_ENABLED", "true")
 | |
| 	defer os.Unsetenv("LOG_STDOUT_ENABLED")
 | |
| 	c, _ := Load()
 | |
| 	std, en := c.Outputs.Stdout()
 | |
| 	assert.True(t, en)
 | |
| 	assert.True(t, std.Json)
 | |
| }
 |