diff options
| author | 2023-04-28 01:36:55 +0800 | |
|---|---|---|
| committer | 2023-04-28 01:36:55 +0800 | |
| commit | fc8c5fdce62fb229202659408798a7b6c98f6e8b (patch) | |
| tree | 7554f80e50de4af6fd255afa7c21bcdd58a7af34 /cli/internal/filewatcher/cookie_test.go | |
| parent | dd84b9d64fb98746a230cd24233ff50a562c39c9 (diff) | |
| download | HydroRoll-fc8c5fdce62fb229202659408798a7b6c98f6e8b.tar.gz HydroRoll-fc8c5fdce62fb229202659408798a7b6c98f6e8b.zip | |
Diffstat (limited to 'cli/internal/filewatcher/cookie_test.go')
| -rw-r--r-- | cli/internal/filewatcher/cookie_test.go | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/cli/internal/filewatcher/cookie_test.go b/cli/internal/filewatcher/cookie_test.go deleted file mode 100644 index 96241b4..0000000 --- a/cli/internal/filewatcher/cookie_test.go +++ /dev/null @@ -1,130 +0,0 @@ -package filewatcher - -import ( - "testing" - "time" - - "github.com/hashicorp/go-hclog" - "github.com/pkg/errors" - "github.com/vercel/turbo/cli/internal/fs" - "gotest.tools/v3/assert" -) - -func TestWaitForCookie(t *testing.T) { - logger := hclog.Default() - cookieDir := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - repoRoot := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - - jar, err := NewCookieJar(cookieDir, 5*time.Second) - assert.NilError(t, err, "NewCookieJar") - - watcher, err := GetPlatformSpecificBackend(logger) - assert.NilError(t, err, "NewWatcher") - fw := New(logger, repoRoot, watcher) - err = fw.Start() - assert.NilError(t, err, "Start") - fw.AddClient(jar) - err = fw.AddRoot(cookieDir) - assert.NilError(t, err, "Add") - - err = jar.WaitForCookie() - assert.NilError(t, err, "failed to roundtrip cookie") -} - -func TestWaitForCookieAfterClose(t *testing.T) { - logger := hclog.Default() - cookieDir := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - repoRoot := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - - jar, err := NewCookieJar(cookieDir, 5*time.Second) - assert.NilError(t, err, "NewCookieJar") - - watcher, err := GetPlatformSpecificBackend(logger) - assert.NilError(t, err, "NewWatcher") - fw := New(logger, repoRoot, watcher) - err = fw.Start() - assert.NilError(t, err, "Start") - fw.AddClient(jar) - err = fw.AddRoot(cookieDir) - assert.NilError(t, err, "Add") - - err = fw.Close() - assert.NilError(t, err, "Close") - err = jar.WaitForCookie() - assert.ErrorIs(t, err, ErrCookieWatchingClosed) -} - -func TestWaitForCookieTimeout(t *testing.T) { - logger := hclog.Default() - cookieDir := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - repoRoot := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - - jar, err := NewCookieJar(cookieDir, 10*time.Millisecond) - assert.NilError(t, err, "NewCookieJar") - - watcher, err := GetPlatformSpecificBackend(logger) - assert.NilError(t, err, "NewWatcher") - fw := New(logger, repoRoot, watcher) - err = fw.Start() - assert.NilError(t, err, "Start") - fw.AddClient(jar) - - // NOTE: don't call fw.Add here so that no file event gets delivered - - err = jar.WaitForCookie() - assert.ErrorIs(t, err, ErrCookieTimeout) -} - -func TestWaitForCookieWithError(t *testing.T) { - logger := hclog.Default() - cookieDir := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - repoRoot := fs.AbsoluteSystemPathFromUpstream(t.TempDir()) - - jar, err := NewCookieJar(cookieDir, 10*time.Second) - assert.NilError(t, err, "NewCookieJar") - - watcher, err := GetPlatformSpecificBackend(logger) - assert.NilError(t, err, "NewWatcher") - fw := New(logger, repoRoot, watcher) - err = fw.Start() - assert.NilError(t, err, "Start") - fw.AddClient(jar) - - // NOTE: don't call fw.Add here so that no file event gets delivered - myErr := errors.New("an error") - ch := make(chan error) - go func() { - if err := jar.WaitForCookie(); err != nil { - ch <- err - } - close(ch) - }() - // wait for the cookie to be registered in the jar - for { - found := false - jar.mu.Lock() - if len(jar.cookies) == 1 { - found = true - } - jar.mu.Unlock() - if found { - break - } - <-time.After(10 * time.Millisecond) - } - jar.OnFileWatchError(myErr) - - err, ok := <-ch - if !ok { - t.Error("expected to get an error from cookie watching") - } - assert.ErrorIs(t, err, myErr) - - // ensure waiting for a new cookie still works. - // Add the filewatch to allow cookies work normally - err = fw.AddRoot(cookieDir) - assert.NilError(t, err, "Add") - - err = jar.WaitForCookie() - assert.NilError(t, err, "WaitForCookie") -} |
