diff --git a/kv.go b/kv.go index fd10bae13..06402cde1 100644 --- a/kv.go +++ b/kv.go @@ -171,8 +171,8 @@ func LastRevision(revision uint64) DeleteOpt { }) } -// Purge removes all previous revisions. -func Purge() DeleteOpt { +// purge removes all previous revisions. +func purge() DeleteOpt { return deleteOptFn(func(opts *deleteOpts) error { opts.purge = true return nil @@ -545,7 +545,7 @@ func (kv *kvs) Delete(key string, opts ...DeleteOpt) error { // Purge will remove the key and all revisions. func (kv *kvs) Purge(key string, opts ...DeleteOpt) error { - return kv.Delete(key, append(opts, Purge())...) + return kv.Delete(key, append(opts, purge())...) } // PurgeDeletes will remove all current delete markers. diff --git a/test/kv_test.go b/test/kv_test.go index 8555281b0..e3103bf42 100644 --- a/test/kv_test.go +++ b/test/kv_test.go @@ -309,7 +309,9 @@ func TestKeyValueDeleteVsPurge(t *testing.T) { if len(entries) != 4 { t.Fatalf("Expected 4 entries for age after delete, got %d", len(entries)) } - err = kv.Purge("name") + err = kv.Purge("name", nats.LastRevision(4)) + expectErr(t, err) + err = kv.Purge("name", nats.LastRevision(5)) expectOk(t, err) // Check marker e, err := kv.Get("name")