(t *testing.T)
| 1616 | } |
| 1617 | |
| 1618 | func 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 |
nothing calls this directly
no test coverage detected