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

Function TestKeyValueGetRevision

jetstream/test/kv_test.go:2309–2354  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2307}
2308
2309func TestKeyValueGetRevision(t *testing.T) {
2310 s := RunBasicJetStreamServer()
2311 defer shutdownJSServerAndRemoveStorage(t, s)
2312
2313 nc, js := jsClient(t, s)
2314 defer nc.Close()
2315 ctx := context.Background()
2316
2317 kv, err := js.CreateKeyValue(ctx, jetstream.KeyValueConfig{
2318 Bucket: "TEST",
2319 History: 5,
2320 })
2321 if err != nil {
2322 t.Fatalf("Unexpected error: %v", err)
2323 }
2324
2325 if _, err := kv.Put(ctx, "key", []byte("value1")); err != nil {
2326 t.Fatalf("Unexpected error: %v", err)
2327 }
2328
2329 if _, err := kv.Put(ctx, "key", []byte("value2")); err != nil {
2330 t.Fatalf("Unexpected error: %v", err)
2331 }
2332
2333 entry, err := kv.GetRevision(ctx, "key", 1)
2334 if err != nil {
2335 t.Fatalf("Unexpected error: %v", err)
2336 }
2337
2338 if string(entry.Value()) != "value1" {
2339 t.Fatalf("Expected value1, got %s", string(entry.Value()))
2340 }
2341
2342 if entry.Revision() != 1 {
2343 t.Fatalf("Expected revision 1, got %d", entry.Revision())
2344 }
2345
2346 if err := kv.Delete(ctx, "key"); err != nil {
2347 t.Fatalf("Unexpected error: %v", err)
2348 }
2349
2350 _, err = kv.GetRevision(ctx, "key", 3)
2351 if !errors.Is(err, jetstream.ErrKeyNotFound) {
2352 t.Fatalf("Expected ErrKeyNotFound, got %v", err)
2353 }
2354}
2355
2356func TestKeyValueStatusBytes(t *testing.T) {
2357 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 12

FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
CreateKeyValueMethod · 0.65
PutMethod · 0.65
GetRevisionMethod · 0.65
ValueMethod · 0.65
RevisionMethod · 0.65
DeleteMethod · 0.65
CloseMethod · 0.45
IsMethod · 0.45

Tested by

no test coverage detected