(t *testing.T)
| 564 | } |
| 565 | |
| 566 | func TestObjectWatch(t *testing.T) { |
| 567 | expectUpdateF := func(t *testing.T, watcher jetstream.ObjectWatcher) func(name string) { |
| 568 | return func(name string) { |
| 569 | t.Helper() |
| 570 | select { |
| 571 | case info := <-watcher.Updates(): |
| 572 | if false && info.Name != name { // TODO what is supposed to happen here? |
| 573 | t.Fatalf("Expected update for %q, but got %+v", name, info) |
| 574 | } |
| 575 | case <-time.After(time.Second): |
| 576 | t.Fatalf("Did not receive an update like expected") |
| 577 | } |
| 578 | } |
| 579 | } |
| 580 | |
| 581 | expectNoMoreUpdatesF := func(t *testing.T, watcher jetstream.ObjectWatcher) func() { |
| 582 | return func() { |
| 583 | t.Helper() |
| 584 | select { |
| 585 | case info := <-watcher.Updates(): |
| 586 | t.Fatalf("Got an unexpected update: %+v", info) |
| 587 | case <-time.After(100 * time.Millisecond): |
| 588 | } |
| 589 | } |
| 590 | } |
| 591 | |
| 592 | expectInitDoneF := func(t *testing.T, watcher jetstream.ObjectWatcher) func() { |
| 593 | return func() { |
| 594 | t.Helper() |
| 595 | select { |
| 596 | case info := <-watcher.Updates(): |
| 597 | if info != nil { |
| 598 | t.Fatalf("Did not get expected: %+v", info) |
| 599 | } |
| 600 | case <-time.After(time.Second): |
| 601 | t.Fatalf("Did not receive a init done like expected") |
| 602 | } |
| 603 | } |
| 604 | } |
| 605 | |
| 606 | t.Run("default watcher", func(t *testing.T) { |
| 607 | s := RunBasicJetStreamServer() |
| 608 | defer shutdownJSServerAndRemoveStorage(t, s) |
| 609 | |
| 610 | nc, js := jsClient(t, s) |
| 611 | defer nc.Close() |
| 612 | ctx := context.Background() |
| 613 | |
| 614 | obs, err := js.CreateObjectStore(ctx, jetstream.ObjectStoreConfig{Bucket: "WATCH-TEST"}) |
| 615 | expectOk(t, err) |
| 616 | |
| 617 | watcher, err := obs.Watch(ctx) |
| 618 | expectOk(t, err) |
| 619 | defer watcher.Stop() |
| 620 | |
| 621 | expectUpdate := expectUpdateF(t, watcher) |
| 622 | expectNoMoreUpdates := expectNoMoreUpdatesF(t, watcher) |
| 623 | expectInitDone := expectInitDoneF(t, watcher) |
nothing calls this directly
no test coverage detected