(t *testing.T)
| 2518 | } |
| 2519 | |
| 2520 | func 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 | |
| 2572 | func TestScheduleCronDelivery(t *testing.T) { |
| 2573 | srv := RunBasicJetStreamServer() |
nothing calls this directly
no test coverage detected