(t *testing.T)
| 1476 | } |
| 1477 | |
| 1478 | func 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() |
nothing calls this directly
no test coverage detected