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

Function TestScheduleEveryDelivery

jetstream/test/publish_test.go:2520–2570  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2518}
2519
2520func TestScheduleEveryDelivery(t *testing.T) {
2521 srv := RunBasicJetStreamServer()
2522 defer shutdownJSServerAndRemoveStorage(t, srv)
2523 nc, err := nats.Connect(srv.ClientURL())
2524 if err != nil {
2525 t.Fatalf("Unexpected error: %v", err)
2526 }
2527 defer nc.Close()
2528
2529 js, err := jetstream.New(nc)
2530 if err != nil {
2531 t.Fatalf("Unexpected error: %v", err)
2532 }
2533
2534 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
2535 defer cancel()
2536 _, err = js.CreateStream(ctx, jetstream.StreamConfig{
2537 Name: "SCHED",
2538 Subjects: []string{"schedule.>", "target.>"},
2539 AllowMsgSchedules: true,
2540 })
2541 if err != nil {
2542 t.Fatalf("Unexpected error: %v", err)
2543 }
2544
2545 cons, err := js.CreateConsumer(ctx, "SCHED", jetstream.ConsumerConfig{
2546 FilterSubject: "target.every",
2547 })
2548 if err != nil {
2549 t.Fatalf("Unexpected error: %v", err)
2550 }
2551
2552 _, err = js.Publish(ctx, "schedule.every", []byte("repeating"),
2553 jetstream.WithScheduleEvery(1*time.Second),
2554 jetstream.WithScheduleTarget("target.every"),
2555 )
2556 if err != nil {
2557 t.Fatalf("Unexpected error: %v", err)
2558 }
2559
2560 // Verify at least 2 deliveries to confirm repeating behavior.
2561 for range 2 {
2562 msg, err := cons.Next(jetstream.FetchMaxWait(5 * time.Second))
2563 if err != nil {
2564 t.Fatalf("Expected to receive scheduled message: %v", err)
2565 }
2566 if string(msg.Data()) != "repeating" {
2567 t.Fatalf("Expected payload %q; got: %q", "repeating", string(msg.Data()))
2568 }
2569 }
2570}
2571
2572func TestScheduleCronDelivery(t *testing.T) {
2573 srv := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 14

NewFunction · 0.92
WithScheduleEveryFunction · 0.92
WithScheduleTargetFunction · 0.92
FetchMaxWaitFunction · 0.92
ConnectMethod · 0.80
FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
CreateStreamMethod · 0.65
CreateConsumerMethod · 0.65
PublishMethod · 0.65
NextMethod · 0.65

Tested by

no test coverage detected