watcher_path_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package configcheck_test
  2. import (
  3. "path/filepath"
  4. "testing"
  5. "github.com/OliveTin/OliveTin/internal/config"
  6. "github.com/OliveTin/OliveTin/internal/configcheck"
  7. "github.com/OliveTin/OliveTin/internal/configissues"
  8. "github.com/stretchr/testify/assert"
  9. "github.com/stretchr/testify/require"
  10. )
  11. func TestRebuildWatcherPathMissingDir(t *testing.T) {
  12. configissues.BeginConfigLoad()
  13. configissues.Replace(nil)
  14. missing := filepath.Join(t.TempDir(), "does-not-exist")
  15. cfg := config.DefaultConfig()
  16. cfg.Actions = []*config.Action{
  17. {
  18. Title: "On create",
  19. ID: "on_create",
  20. SourceFile: "/etc/OliveTin/config.yaml",
  21. ExecOnFileCreatedInDir: []string{missing},
  22. },
  23. }
  24. configcheck.Rebuild(cfg)
  25. issues := configissues.List()
  26. require.True(t, hasCode(issues, configissues.CodeWatcherPath))
  27. var found *configissues.Issue
  28. for i := range issues {
  29. if issues[i].Code == configissues.CodeWatcherPath {
  30. found = &issues[i]
  31. break
  32. }
  33. }
  34. require.NotNil(t, found)
  35. assert.Equal(t, missing, found.Source)
  36. assert.Equal(t, "/etc/OliveTin/config.yaml", found.ConfigFile)
  37. assert.Contains(t, found.Message, missing)
  38. assert.Contains(t, found.Message, "Could not create watcher")
  39. }