MCPcopy
hub / github.com/nats-io/nats.go / TestPauseConsumer

Function TestPauseConsumer

jetstream/test/stream_test.go:1618–1745  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1616}
1617
1618func TestPauseConsumer(t *testing.T) {
1619 srv := RunBasicJetStreamServer()
1620 defer shutdownJSServerAndRemoveStorage(t, srv)
1621
1622 nc, err := nats.Connect(srv.ClientURL())
1623 if err != nil {
1624 t.Fatalf("Unexpected error: %v", err)
1625 }
1626
1627 js, err := jetstream.New(nc)
1628 if err != nil {
1629 t.Fatalf("Unexpected error: %v", err)
1630 }
1631
1632 defer nc.Close()
1633
1634 s, err := js.CreateStream(context.TODO(), jetstream.StreamConfig{Name: "foo", Subjects: []string{"FOO.*"}})
1635 if err != nil {
1636 t.Fatalf("Unexpected error: %v", err)
1637 }
1638
1639 t.Run("create a paused consumer", func(t *testing.T) {
1640 const consumerName = "durr"
1641 pauseUntil := time.Now().Add(1 * time.Minute)
1642 consumer, err := s.CreateOrUpdateConsumer(context.TODO(), jetstream.ConsumerConfig{
1643 Durable: consumerName,
1644 AckPolicy: jetstream.AckAllPolicy,
1645 Description: "desc",
1646 PauseUntil: &pauseUntil,
1647 })
1648 if err != nil {
1649 t.Fatalf("Unexpected error: %v", err)
1650 }
1651
1652 info, err := consumer.Info(context.TODO())
1653 if err != nil {
1654 t.Fatalf("Unexpected error: %v", err)
1655 }
1656 if !info.Paused {
1657 t.Fatalf("Consumer should be paused")
1658 }
1659 if info.PauseRemaining <= time.Duration(0) {
1660 t.Fatalf("PauseRemaining should be greater than 0")
1661 }
1662 })
1663
1664 t.Run("pausing a consumer that does not exists", func(t *testing.T) {
1665 const consumerName = "durr1"
1666 pauseUntil := time.Now().Add(1 * time.Minute)
1667 _, err := s.PauseConsumer(context.TODO(), consumerName, pauseUntil)
1668 if err == nil {
1669 t.Fatalf("Expected error; got: %v", err)
1670 }
1671 if !errors.Is(err, jetstream.ErrConsumerNotFound) {
1672 t.Fatalf("Expected error: %v; got: %v", jetstream.ErrConsumerNotFound, err)
1673 }
1674 })
1675

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
ConnectMethod · 0.80
FatalfMethod · 0.80
DurationMethod · 0.80
EqualMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
CreateStreamMethod · 0.65
AddMethod · 0.65
InfoMethod · 0.65
PauseConsumerMethod · 0.65

Tested by

no test coverage detected