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

Function TestKeyValuePurgeDeletesMarkerThreshold

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

Source from the content-addressed store, hash-verified

922}
923
924func TestKeyValuePurgeDeletesMarkerThreshold(t *testing.T) {
925 s := RunBasicJetStreamServer()
926 defer shutdownJSServerAndRemoveStorage(t, s)
927
928 nc, js := jsClient(t, s)
929 defer nc.Close()
930 ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
931 defer cancel()
932
933 kv, err := js.CreateKeyValue(ctx, jetstream.KeyValueConfig{Bucket: "KVS", History: 10})
934 expectOk(t, err)
935
936 put := func(key, value string) {
937 t.Helper()
938 _, err := kv.Put(ctx, key, []byte(value))
939 expectOk(t, err)
940 }
941
942 put("foo", "foo1")
943 put("bar", "bar1")
944 put("foo", "foo2")
945 err = kv.Delete(ctx, "foo")
946 expectOk(t, err)
947
948 time.Sleep(200 * time.Millisecond)
949
950 err = kv.Delete(ctx, "bar")
951 expectOk(t, err)
952
953 err = kv.PurgeDeletes(ctx, jetstream.DeleteMarkersOlderThan(100*time.Millisecond))
954 expectOk(t, err)
955
956 // The key foo should have been completely cleared of the data
957 // and the delete marker.
958 fooEntries, err := kv.History(ctx, "foo")
959 if err != jetstream.ErrKeyNotFound {
960 t.Fatalf("Expected all entries for key foo to be gone, got err=%v entries=%v", err, fooEntries)
961 }
962 barEntries, err := kv.History(ctx, "bar")
963 expectOk(t, err)
964 if len(barEntries) != 1 {
965 t.Fatalf("Expected 1 entry, got %v", barEntries)
966 }
967 if e := barEntries[0]; e.Operation() != jetstream.KeyValueDelete {
968 t.Fatalf("Unexpected entry: %+v", e)
969 }
970}
971
972func TestKeyValueKeys(t *testing.T) {
973 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 13

DeleteMarkersOlderThanTypeAlias · 0.92
FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
expectOkFunction · 0.70
CreateKeyValueMethod · 0.65
PutMethod · 0.65
DeleteMethod · 0.65
PurgeDeletesMethod · 0.65
HistoryMethod · 0.65
OperationMethod · 0.65

Tested by

no test coverage detected