Something went wrong on our end
-
Volker Schukai authoredVolker Schukai authored
lighthouse_test.go 3.08 KiB
package watch
import (
"errors"
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestAddWatch(t *testing.T) {
tempDir, err := os.MkdirTemp("", "watchtest")
assert.Nil(t, err)
defer func() {
_ = os.RemoveAll(tempDir) // Cleanup
}()
l := NewLighthouse()
w := &Watch{Path: tempDir}
err = l.Add(w)
assert.Nil(t, err)
err = l.Add(w)
assert.True(t, errors.As(err, &AlreadyWatchedPathError{}))
}
func TestRemoveWatch(t *testing.T) {
tempDir, err := os.MkdirTemp("", "watchtest")
assert.Nil(t, err)
defer func() {
_ = os.RemoveAll(tempDir) // Cleanup
}()
l := NewLighthouse()
w := &Watch{Path: tempDir}
err = l.Add(w)
assert.Nil(t, err)
err = l.Remove(tempDir)
assert.Nil(t, err)
err = l.Remove("path/not/watched")
assert.True(t, errors.As(err, &UnwatchedPathError{}))
}
func TestNewLighthouse(t *testing.T) {
l := NewLighthouse()
assert.NotNil(t, l)
assert.True(t, l.IsActive())
}
func TestIsWatched(t *testing.T) {
tempDir, err := os.MkdirTemp("", "watchtest")
assert.Nil(t, err)
defer func() {
_ = os.RemoveAll(tempDir) // Cleanup
}()
l := NewLighthouse()
w := &Watch{Path: tempDir}
err = l.Add(w)
assert.Nil(t, err)
assert.True(t, l.IsWatched(tempDir))
assert.False(t, l.IsWatched("path/not/watched"))
}