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

Function TestKeyValuePurgeDeletesMarkerThreshold

test/kv_test.go:745–789  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

743}
744
745func TestKeyValuePurgeDeletesMarkerThreshold(t *testing.T) {
746 s := RunBasicJetStreamServer()
747 defer shutdownJSServerAndRemoveStorage(t, s)
748
749 nc, js := jsClient(t, s)
750 defer nc.Close()
751
752 kv, err := js.CreateKeyValue(&nats.KeyValueConfig{Bucket: "KVS", History: 10})
753 expectOk(t, err)
754
755 put := func(key, value string) {
756 t.Helper()
757 _, err := kv.Put(key, []byte(value))
758 expectOk(t, err)
759 }
760
761 put("foo", "foo1")
762 put("bar", "bar1")
763 put("foo", "foo2")
764 err = kv.Delete("foo")
765 expectOk(t, err)
766
767 time.Sleep(200 * time.Millisecond)
768
769 err = kv.Delete("bar")
770 expectOk(t, err)
771
772 err = kv.PurgeDeletes(nats.DeleteMarkersOlderThan(100 * time.Millisecond))
773 expectOk(t, err)
774
775 // The key foo should have been completely cleared of the data
776 // and the delete marker.
777 fooEntries, err := kv.History("foo")
778 if err != nats.ErrKeyNotFound {
779 t.Fatalf("Expected all entries for key foo to be gone, got err=%v entries=%v", err, fooEntries)
780 }
781 barEntries, err := kv.History("bar")
782 expectOk(t, err)
783 if len(barEntries) != 1 {
784 t.Fatalf("Expected 1 entry, got %v", barEntries)
785 }
786 if e := barEntries[0]; e.Operation() != nats.KeyValueDelete {
787 t.Fatalf("Unexpected entry: %+v", e)
788 }
789}
790
791func TestKeyValueKeys(t *testing.T) {
792 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 12

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
CloseMethod · 0.45

Tested by

no test coverage detected