olivetin/service/internal/configcheck/watcher_path_test.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")
}