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

Function TestKeyValueKeysDeduplicate

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

Source from the content-addressed store, hash-verified

1855}
1856
1857func TestKeyValueKeysDeduplicate(t *testing.T) {
1858 s := RunBasicJetStreamServer()
1859 defer shutdownJSServerAndRemoveStorage(t, s)
1860
1861 nc, js := jsClient(t, s)
1862 defer nc.Close()
1863
1864 kv, err := js.CreateKeyValue(&nats.KeyValueConfig{Bucket: "TEST_KV", History: 5})
1865 if err != nil {
1866 t.Fatalf("Error creating KV: %v", err)
1867 }
1868
1869 for i := range 10 {
1870 key := fmt.Sprintf("key_%d", i)
1871 if _, err := kv.PutString(key, "initial"); err != nil {
1872 t.Fatalf("Error putting key %s: %v", key, err)
1873 }
1874 }
1875
1876 done := make(chan bool)
1877 go func() {
1878 for {
1879 select {
1880 case <-done:
1881 return
1882 default:
1883 for i := range 5 {
1884 key := fmt.Sprintf("key_%d", i)
1885 kv.PutString(key, "updated")
1886 }
1887 }
1888 }
1889 }()
1890
1891 for range 20 {
1892 keys, err := kv.Keys()
1893 if err != nil {
1894 t.Fatalf("Error getting keys: %v", err)
1895 }
1896
1897 seen := make(map[string]struct{})
1898 for _, key := range keys {
1899 if _, exists := seen[key]; exists {
1900 t.Fatalf("Duplicate key found: %s", key)
1901 }
1902 seen[key] = struct{}{}
1903 }
1904 }
1905
1906 close(done)
1907}
1908
1909func TestKeyValueConfig(t *testing.T) {
1910 s := RunBasicJetStreamServer()

Callers

nothing calls this directly

Calls 8

FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
jsClientFunction · 0.70
CreateKeyValueMethod · 0.65
PutStringMethod · 0.65
KeysMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected