47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package configcheck_test
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/OliveTin/OliveTin/internal/config"
|
|
"github.com/OliveTin/OliveTin/internal/configcheck"
|
|
"github.com/OliveTin/OliveTin/internal/configissues"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRebuildWatcherPathMissingDir(t *testing.T) {
|
|
configissues.BeginConfigLoad()
|
|
configissues.Replace(nil)
|
|
|
|
missing := filepath.Join(t.TempDir(), "does-not-exist")
|
|
cfg := config.DefaultConfig()
|
|
cfg.Actions = []*config.Action{
|
|
{
|
|
Title: "On create",
|
|
ID: "on_create",
|
|
SourceFile: "/etc/OliveTin/config.yaml",
|
|
ExecOnFileCreatedInDir: []string{missing},
|
|
},
|
|
}
|
|
|
|
configcheck.Rebuild(cfg)
|
|
|
|
issues := configissues.List()
|
|
require.True(t, hasCode(issues, configissues.CodeWatcherPath))
|
|
|
|
var found *configissues.Issue
|
|
for i := range issues {
|
|
if issues[i].Code == configissues.CodeWatcherPath {
|
|
found = &issues[i]
|
|
break
|
|
}
|
|
}
|
|
require.NotNil(t, found)
|
|
assert.Equal(t, missing, found.Source)
|
|
assert.Equal(t, "/etc/OliveTin/config.yaml", found.ConfigFile)
|
|
assert.Contains(t, found.Message, missing)
|
|
assert.Contains(t, found.Message, "Could not create watcher")
|
|
}
|