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

Function TestKeyValueMirrorCrossDomains

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

Source from the content-addressed store, hash-verified

1290}
1291
1292func TestKeyValueMirrorCrossDomains(t *testing.T) {
1293 keyExists := func(t *testing.T, kv nats.KeyValue, key string, expected string) nats.KeyValueEntry {
1294 var e nats.KeyValueEntry
1295 var err error
1296 checkFor(t, 10*time.Second, 10*time.Millisecond, func() error {
1297 e, err = kv.Get(key)
1298 if err != nil {
1299 return err
1300 }
1301 if string(e.Value()) != expected {
1302 return fmt.Errorf("Expected value to be %q, got %q", expected, e.Value())
1303 }
1304 return nil
1305 })
1306 return e
1307 }
1308
1309 keyDeleted := func(t *testing.T, kv nats.KeyValue, key string) {
1310 checkFor(t, 10*time.Second, 10*time.Millisecond, func() error {
1311 _, err := kv.Get(key)
1312 if err == nil {
1313 return errors.New("Expected key to be gone")
1314 }
1315 if !errors.Is(err, nats.ErrKeyNotFound) {
1316 return err
1317 }
1318 return nil
1319 })
1320 }
1321
1322 conf := createConfFile(t, []byte(`
1323 server_name: HUB
1324 listen: 127.0.0.1:-1
1325 jetstream: { domain: HUB }
1326 leafnodes { listen: 127.0.0.1:7422 }
1327 }`))
1328 defer os.Remove(conf)
1329 s, _ := RunServerWithConfig(conf)
1330 defer shutdownJSServerAndRemoveStorage(t, s)
1331
1332 lconf := createConfFile(t, []byte(`
1333 server_name: LEAF
1334 listen: 127.0.0.1:-1
1335 jetstream: { domain:LEAF }
1336 leafnodes {
1337 remotes = [ { url: "leaf://127.0.0.1" } ]
1338 }
1339 }`))
1340 defer os.Remove(lconf)
1341 ln, _ := RunServerWithConfig(lconf)
1342 defer shutdownJSServerAndRemoveStorage(t, ln)
1343
1344 // Create main KV on HUB
1345 nc, js := jsClient(t, s)
1346 defer nc.Close()
1347
1348 kv, err := js.CreateKeyValue(&nats.KeyValueConfig{Bucket: "TEST"})
1349 expectOk(t, err)

Callers

nothing calls this directly

Calls 15

ValueMethod · 0.95
OperationMethod · 0.95
ErrorfMethod · 0.80
FatalfMethod · 0.80
JetStreamMethod · 0.80
checkForFunction · 0.70
createConfFileFunction · 0.70
RunServerWithConfigFunction · 0.70
jsClientFunction · 0.70
expectOkFunction · 0.70
GetMethod · 0.65

Tested by

no test coverage detected