(t *testing.T)
| 495 | } |
| 496 | |
| 497 | func TestObjectWatch(t *testing.T) { |
| 498 | expectUpdateF := func(t *testing.T, watcher nats.ObjectWatcher) func(name string) { |
| 499 | return func(name string) { |
| 500 | t.Helper() |
| 501 | select { |
| 502 | case info := <-watcher.Updates(): |
| 503 | if false && info.Name != name { // TODO what is supposed to happen here? |
| 504 | t.Fatalf("Expected update for %q, but got %+v", name, info) |
| 505 | } |
| 506 | case <-time.After(time.Second): |
| 507 | t.Fatalf("Did not receive an update like expected") |
| 508 | } |
| 509 | } |
| 510 | } |
| 511 | |
| 512 | expectNoMoreUpdatesF := func(t *testing.T, watcher nats.ObjectWatcher) func() { |
| 513 | return func() { |
| 514 | t.Helper() |
| 515 | select { |
| 516 | case info := <-watcher.Updates(): |
| 517 | t.Fatalf("Got an unexpected update: %+v", info) |
| 518 | case <-time.After(100 * time.Millisecond): |
| 519 | } |
| 520 | } |
| 521 | } |
| 522 | |
| 523 | expectInitDoneF := func(t *testing.T, watcher nats.ObjectWatcher) func() { |
| 524 | return func() { |
| 525 | t.Helper() |
| 526 | select { |
| 527 | case info := <-watcher.Updates(): |
| 528 | if info != nil { |
| 529 | t.Fatalf("Did not get expected: %+v", info) |
| 530 | } |
| 531 | case <-time.After(time.Second): |
| 532 | t.Fatalf("Did not receive a init done like expected") |
| 533 | } |
| 534 | } |
| 535 | } |
| 536 | |
| 537 | t.Run("default watcher", func(t *testing.T) { |
| 538 | s := RunBasicJetStreamServer() |
| 539 | defer shutdownJSServerAndRemoveStorage(t, s) |
| 540 | |
| 541 | nc, js := jsClient(t, s) |
| 542 | defer nc.Close() |
| 543 | |
| 544 | obs, err := js.CreateObjectStore(&nats.ObjectStoreConfig{Bucket: "WATCH-TEST"}) |
| 545 | expectOk(t, err) |
| 546 | |
| 547 | watcher, err := obs.Watch() |
| 548 | expectOk(t, err) |
| 549 | defer watcher.Stop() |
| 550 | |
| 551 | expectUpdate := expectUpdateF(t, watcher) |
| 552 | expectNoMoreUpdates := expectNoMoreUpdatesF(t, watcher) |
| 553 | expectInitDone := expectInitDoneF(t, watcher) |
| 554 |
nothing calls this directly
no test coverage detected