upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test_utils/src/lib.rs82
-rw-r--r--tests/list.rs2
-rw-r--r--tests/pull.rs28
3 files changed, 62 insertions, 50 deletions
diff --git a/test_utils/src/lib.rs b/test_utils/src/lib.rs
index 866eafb..5125d20 100644
--- a/test_utils/src/lib.rs
+++ b/test_utils/src/lib.rs
@@ -1196,13 +1196,13 @@ pub fn remove_latest_commit_so_proposal_branch_is_behind_and_checkout_main(
1196 Ok(branch_name) 1196 Ok(branch_name)
1197} 1197}
1198 1198
1199pub fn amend_last_commit(test_repo: &GitTestRepo) -> Result<String> { 1199pub fn amend_last_commit(test_repo: &GitTestRepo, commit_msg: &str) -> Result<String> {
1200 let branch_name = 1200 let branch_name =
1201 remove_latest_commit_so_proposal_branch_is_behind_and_checkout_main(test_repo)?; 1201 remove_latest_commit_so_proposal_branch_is_behind_and_checkout_main(test_repo)?;
1202 // add another commit (so we have an ammened local branch) 1202 // add another commit (so we have an ammened local branch)
1203 test_repo.checkout(&branch_name)?; 1203 test_repo.checkout(&branch_name)?;
1204 std::fs::write(test_repo.dir.join("ammended-commit.md"), "some content")?; 1204 std::fs::write(test_repo.dir.join("ammended-commit.md"), commit_msg)?;
1205 test_repo.stage_and_commit("add ammended-commit.md")?; 1205 test_repo.stage_and_commit(commit_msg)?;
1206 Ok(branch_name) 1206 Ok(branch_name)
1207} 1207}
1208 1208
@@ -1210,6 +1210,33 @@ pub fn create_proposals_with_first_rebased_and_repo_with_latest_main_and_unrebas
1210-> Result<(GitTestRepo, GitTestRepo)> { 1210-> Result<(GitTestRepo, GitTestRepo)> {
1211 let (_, test_repo) = create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?; 1211 let (_, test_repo) = create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?;
1212 1212
1213 // recreate proposal 1 on top of a another commit (like a rebase on top
1214 // of one extra commit)
1215 let second_originating_repo = GitTestRepo::default();
1216 second_originating_repo.populate()?;
1217 std::fs::write(
1218 second_originating_repo.dir.join("amazing.md"),
1219 "some content",
1220 )?;
1221 second_originating_repo.stage_and_commit("commit for rebasing on top of")?;
1222 cli_tester_create_proposal(
1223 &second_originating_repo,
1224 FEATURE_BRANCH_NAME_1,
1225 "a",
1226 Some((PROPOSAL_TITLE_1, "proposal a description")),
1227 Some(get_first_proposal_event_id()?.to_string()),
1228 )?;
1229
1230 // pretend we have pulled the updated main branch
1231 let branch_name = test_repo.get_checked_out_branch_name()?;
1232 test_repo.checkout("main")?;
1233 std::fs::write(test_repo.dir.join("amazing.md"), "some content")?;
1234 test_repo.stage_and_commit("commit for rebasing on top of")?;
1235 test_repo.checkout(&branch_name)?;
1236 Ok((second_originating_repo, test_repo))
1237}
1238
1239fn get_first_proposal_event_id() -> Result<nostr::EventId> {
1213 // get proposal id of first 1240 // get proposal id of first
1214 let client = Client::default(); 1241 let client = Client::default();
1215 Handle::current().block_on(client.add_relay("ws://localhost:8055"))?; 1242 Handle::current().block_on(client.add_relay("ws://localhost:8055"))?;
@@ -1236,28 +1263,31 @@ pub fn create_proposals_with_first_rebased_and_repo_with_latest_main_and_unrebas
1236 }) 1263 })
1237 .unwrap() 1264 .unwrap()
1238 .id; 1265 .id;
1239 // recreate proposal 1 on top of a another commit (like a rebase on top 1266 Ok(proposal_1_id)
1240 // of one extra commit) 1267}
1241 let second_originating_repo = GitTestRepo::default();
1242 second_originating_repo.populate()?;
1243 std::fs::write(
1244 second_originating_repo.dir.join("amazing.md"),
1245 "some content",
1246 )?;
1247 second_originating_repo.stage_and_commit("commit for rebasing on top of")?;
1248 cli_tester_create_proposal(
1249 &second_originating_repo,
1250 FEATURE_BRANCH_NAME_1,
1251 "a",
1252 Some((PROPOSAL_TITLE_1, "proposal a description")),
1253 Some(proposal_1_id.to_string()),
1254 )?;
1255 1268
1256 // pretend we have pulled the updated main branch 1269pub fn create_proposals_with_first_revised_and_repo_with_unrevised_proposal_checkedout()
1257 let branch_name = test_repo.get_checked_out_branch_name()?; 1270-> Result<(GitTestRepo, GitTestRepo)> {
1258 test_repo.checkout("main")?; 1271 let (originating_repo, test_repo) =
1259 std::fs::write(test_repo.dir.join("amazing.md"), "some content")?; 1272 create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?;
1260 test_repo.stage_and_commit("commit for rebasing on top of")?; 1273
1261 test_repo.checkout(&branch_name)?; 1274 use_ngit_list_to_download_and_checkout_proposal_branch(&originating_repo, 1)?;
1262 Ok((second_originating_repo, test_repo)) 1275
1276 amend_last_commit(&originating_repo, "add some ammended-commit.md")?;
1277
1278 let mut p = CliTester::new_from_dir(
1279 &originating_repo.dir,
1280 [
1281 "--nsec",
1282 TEST_KEY_1_NSEC,
1283 "--password",
1284 TEST_PASSWORD,
1285 "--disable-cli-spinners",
1286 "push",
1287 "--force",
1288 ],
1289 );
1290 p.expect_end_eventually()?;
1291
1292 Ok((originating_repo, test_repo))
1263} 1293}
diff --git a/tests/list.rs b/tests/list.rs
index 9ffc26a..6e509ac 100644
--- a/tests/list.rs
+++ b/tests/list.rs
@@ -1105,7 +1105,7 @@ mod when_main_branch_is_uptodate {
1105 let (_, test_repo) = 1105 let (_, test_repo) =
1106 create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?; 1106 create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?;
1107 1107
1108 amend_last_commit(&test_repo)?; 1108 amend_last_commit(&test_repo, "add ammended-commit.md")?;
1109 test_repo.checkout("main")?; 1109 test_repo.checkout("main")?;
1110 1110
1111 // run test 1111 // run test
diff --git a/tests/pull.rs b/tests/pull.rs
index 0b0c3ba..057e827 100644
--- a/tests/pull.rs
+++ b/tests/pull.rs
@@ -331,28 +331,11 @@ mod when_branch_is_checked_out {
331 r55.events.push(generate_test_key_1_relay_list_event()); 331 r55.events.push(generate_test_key_1_relay_list_event());
332 332
333 let cli_tester_handle = std::thread::spawn(move || -> Result<()> { 333 let cli_tester_handle = std::thread::spawn(move || -> Result<()> {
334 let (originating_repo, test_repo) = 334 let (o, test_repo) =
335 create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?; 335 create_proposals_with_first_revised_and_repo_with_unrevised_proposal_checkedout()?;
336
337 amend_last_commit(&test_repo, "add different ammended-commit.md")?;
336 338
337 let branch_name = amend_last_commit(&test_repo)?;
338
339 // create and send a revision from another repository
340 originating_repo.checkout("main")?;
341 test_repo.checkout("main")?;
342 test_repo.git_repo.branch(
343 &branch_name,
344 &test_repo
345 .git_repo
346 .find_commit(test_repo.get_tip_of_local_branch(&branch_name)?)?
347 .parent(0)?,
348 true,
349 )?;
350 originating_repo.checkout(&branch_name)?;
351 test_repo.checkout(&branch_name)?;
352 std::fs::write(test_repo.dir.join("ammended-commit.md"), "some content")?;
353 test_repo.stage_and_commit("add ammended-commit.md")?;
354 let mut p = CliTester::new_from_dir(&test_repo.dir, ["push", "--force"]);
355 p.expect_end_eventually()?;
356 // test when branch is ammended an older version of the proposal 339 // test when branch is ammended an older version of the proposal
357 let mut p = CliTester::new_from_dir(&test_repo.dir, ["pull"]); 340 let mut p = CliTester::new_from_dir(&test_repo.dir, ["pull"]);
358 p.expect("fetching updates...\r\n")?; 341 p.expect("fetching updates...\r\n")?;
@@ -384,7 +367,6 @@ mod when_branch_is_checked_out {
384 r56.listen_until_close(), 367 r56.listen_until_close(),
385 ); 368 );
386 cli_tester_handle.join().unwrap()?; 369 cli_tester_handle.join().unwrap()?;
387 println!("{:?}", r55.events);
388 Ok(()) 370 Ok(())
389 } 371 }
390 } 372 }
@@ -419,7 +401,7 @@ mod when_branch_is_checked_out {
419 let (_, test_repo) = 401 let (_, test_repo) =
420 create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?; 402 create_proposals_and_repo_with_proposal_pulled_and_checkedout(1)?;
421 403
422 amend_last_commit(&test_repo)?; 404 amend_last_commit(&test_repo, "add ammended-commit.md")?;
423 405
424 // run test 406 // run test
425 let mut p = CliTester::new_from_dir(&test_repo.dir, ["pull"]); 407 let mut p = CliTester::new_from_dir(&test_repo.dir, ["pull"]);