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