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

Function TestKeyValueMirrorCrossDomains

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

Source from the content-addressed store, hash-verified

1476}
1477
1478func TestKeyValueMirrorCrossDomains(t *testing.T) {
1479 keyExists := func(t *testing.T, kv jetstream.KeyValue, key string, expected string) jetstream.KeyValueEntry {
1480 var e jetstream.KeyValueEntry
1481 var err error
1482 checkFor(t, 10*time.Second, 10*time.Millisecond, func() error {
1483 e, err = kv.Get(context.Background(), key)
1484 if err != nil {
1485 return err
1486 }
1487 if string(e.Value()) != expected {
1488 return fmt.Errorf("Expected value to be %q, got %q", expected, e.Value())
1489 }
1490 return nil
1491 })
1492
1493 return e
1494 }
1495
1496 keyDeleted := func(t *testing.T, kv jetstream.KeyValue, key string) {
1497 checkFor(t, 10*time.Second, 10*time.Millisecond, func() error {
1498 _, err := kv.Get(context.Background(), key)
1499 if err == nil {
1500 return errors.New("Expected key to be gone")
1501 }
1502 if !errors.Is(err, jetstream.ErrKeyNotFound) {
1503 return err
1504 }
1505 return nil
1506 })
1507 }
1508 conf := createConfFile(t, []byte(`
1509 server_name: HUB
1510 listen: 127.0.0.1:-1
1511 jetstream: { domain: HUB }
1512 leafnodes { listen: 127.0.0.1:7422 }
1513 }`))
1514 defer os.Remove(conf)
1515 s, _ := RunServerWithConfig(conf)
1516 defer shutdownJSServerAndRemoveStorage(t, s)
1517
1518 lconf := createConfFile(t, []byte(`
1519 server_name: LEAF
1520 listen: 127.0.0.1:-1
1521 jetstream: { domain:LEAF }
1522 leafnodes {
1523 remotes = [ { url: "leaf://127.0.0.1" } ]
1524 }
1525 }`))
1526 defer os.Remove(lconf)
1527 ln, _ := RunServerWithConfig(lconf)
1528 defer shutdownJSServerAndRemoveStorage(t, ln)
1529
1530 // Create main KV on HUB
1531 nc, js := jsClient(t, s)
1532 defer nc.Close()
1533
1534 ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
1535 defer cancel()

Callers

nothing calls this directly

Calls 15

ValueMethod · 0.95
OperationMethod · 0.95
NewWithDomainFunction · 0.92
ErrorfMethod · 0.80
FatalfMethod · 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