diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2024-07-31 13:49:32 +0100 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2024-07-31 13:49:32 +0100 |
| commit | a1652dc1ef2ba58c90eecdaa2cf10d150825874a (patch) | |
| tree | 7e9a1cdc5a230486aa468b5e5e2142df59039a13 | |
| parent | 28c54378c003f7ba83099d403f19036dc2483f90 (diff) | |
test(remote): push updates remote refs
in the local git repository
| -rw-r--r-- | tests/git_remote_helper.rs | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/git_remote_helper.rs b/tests/git_remote_helper.rs index fced270..7b81609 100644 --- a/tests/git_remote_helper.rs +++ b/tests/git_remote_helper.rs | |||
| @@ -339,5 +339,95 @@ mod push { | |||
| 339 | async_run_test().await | 339 | async_run_test().await |
| 340 | } | 340 | } |
| 341 | } | 341 | } |
| 342 | mod remote_refs_updated { | ||
| 343 | |||
| 344 | use super::*; | ||
| 345 | |||
| 346 | async fn async_run_test() -> Result<()> { | ||
| 347 | let git_repo = prep_git_repo()?; | ||
| 348 | let source_git_repo = GitTestRepo::recreate_as_bare(&git_repo)?; | ||
| 349 | |||
| 350 | std::fs::write(git_repo.dir.join("commit.md"), "some content")?; | ||
| 351 | let main_commit_id = git_repo.stage_and_commit("commit.md")?; | ||
| 352 | |||
| 353 | git_repo.create_branch("vnext")?; | ||
| 354 | git_repo.checkout("vnext")?; | ||
| 355 | std::fs::write(git_repo.dir.join("vnext.md"), "some content")?; | ||
| 356 | let vnext_commit_id = git_repo.stage_and_commit("vnext.md")?; | ||
| 357 | |||
| 358 | let events = vec![ | ||
| 359 | generate_test_key_1_metadata_event("fred"), | ||
| 360 | generate_test_key_1_relay_list_event(), | ||
| 361 | generate_repo_ref_event_with_git_server(source_git_repo.dir.to_str().unwrap()), | ||
| 362 | ]; | ||
| 363 | // fallback (51,52) user write (53, 55) repo (55, 56) blaster (57) | ||
| 364 | let (mut r51, mut r52, mut r53, mut r55, mut r56, mut r57) = ( | ||
| 365 | Relay::new(8051, None, None), | ||
| 366 | Relay::new(8052, None, None), | ||
| 367 | Relay::new(8053, None, None), | ||
| 368 | Relay::new(8055, None, None), | ||
| 369 | Relay::new(8056, None, None), | ||
| 370 | Relay::new(8057, None, None), | ||
| 371 | ); | ||
| 372 | r51.events = events.clone(); | ||
| 373 | r55.events = events; | ||
| 374 | |||
| 375 | let cli_tester_handle = std::thread::spawn(move || -> Result<()> { | ||
| 376 | assert_ne!( | ||
| 377 | source_git_repo.get_tip_of_local_branch("main")?, | ||
| 378 | main_commit_id | ||
| 379 | ); | ||
| 380 | |||
| 381 | let mut p = cli_tester_after_fetch(&git_repo)?; | ||
| 382 | p.send_line("push refs/heads/main:refs/heads/main")?; | ||
| 383 | p.send_line("push refs/heads/vnext:refs/heads/vnext")?; | ||
| 384 | p.send_line("")?; | ||
| 385 | p.expect("ok refs/heads/main\r\n")?; | ||
| 386 | p.expect("ok refs/heads/vnext\r\n")?; | ||
| 387 | p.expect("\r\n")?; | ||
| 388 | |||
| 389 | assert_eq!( | ||
| 390 | git_repo | ||
| 391 | .git_repo | ||
| 392 | .find_reference("refs/remotes/nostr/main")? | ||
| 393 | .peel_to_commit()? | ||
| 394 | .id(), | ||
| 395 | main_commit_id, | ||
| 396 | ); | ||
| 397 | |||
| 398 | assert_eq!( | ||
| 399 | git_repo | ||
| 400 | .git_repo | ||
| 401 | .find_reference("refs/remotes/nostr/vnext")? | ||
| 402 | .peel_to_commit()? | ||
| 403 | .id(), | ||
| 404 | vnext_commit_id | ||
| 405 | ); | ||
| 406 | |||
| 407 | p.exit()?; | ||
| 408 | for p in [51, 52, 53, 55, 56, 57] { | ||
| 409 | relay::shutdown_relay(8000 + p)?; | ||
| 410 | } | ||
| 411 | Ok(()) | ||
| 412 | }); | ||
| 413 | // launch relays | ||
| 414 | let _ = join!( | ||
| 415 | r51.listen_until_close(), | ||
| 416 | r52.listen_until_close(), | ||
| 417 | r53.listen_until_close(), | ||
| 418 | r55.listen_until_close(), | ||
| 419 | r56.listen_until_close(), | ||
| 420 | r57.listen_until_close(), | ||
| 421 | ); | ||
| 422 | cli_tester_handle.join().unwrap()?; | ||
| 423 | Ok(()) | ||
| 424 | } | ||
| 425 | |||
| 426 | #[tokio::test] | ||
| 427 | #[serial] | ||
| 428 | async fn push_updates_refs() -> Result<()> { | ||
| 429 | async_run_test().await | ||
| 430 | } | ||
| 431 | } | ||
| 342 | } | 432 | } |
| 343 | } | 433 | } |