refactor(server): add pr_test_app fixture for PR endpoint tests

Add a pr_test_app(token, github_base_url) -> (state, app, run_id)
helper that bundles the create_github_token_app_state +
build_router(...) + fixtures::RUN_1 triple every PR-endpoint test
shared. Updated 15 call sites; the 3 tests that derive run_id from
create_run(&app, MINIMAL_DOT).await keep their own setup since they
need the app before the run_id exists.

Verified: workspace fmt clean, clippy --all-targets -D warnings clean,
cargo nextest run --workspace 4581 passed, 182 skipped.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bryan Helmkamp 2026-04-24 09:00:30 -04:00
parent 336553e30f
commit 042fca0dec
No known key found for this signature in database

View file

@ -8941,6 +8941,18 @@ strategy = "token"
state
}
/// Build the (state, router, run_id) triple every PR-endpoint test
/// needs. Use this instead of repeating the
/// state/build_router/fixtures::RUN_1 incantation per test.
fn pr_test_app(
token: Option<&str>,
github_api_base_url: Option<String>,
) -> (Arc<AppState>, Router, RunId) {
let state = create_github_token_app_state(token, github_api_base_url);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
(state, app, fixtures::RUN_1)
}
async fn create_run_with_pull_request_record(
state: &Arc<AppState>,
run_id: RunId,
@ -9722,9 +9734,7 @@ slug = "fabro"
.to_string(),
);
});
let state = create_github_token_app_state(Some("ghu_test"), Some(github.base_url()));
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), Some(github.base_url()));
create_run_with_pull_request_record(
&state,
@ -9779,9 +9789,7 @@ slug = "fabro"
#[tokio::test]
async fn get_run_pull_request_rejects_non_github_record_url() {
let state = create_github_token_app_state(Some("ghu_test"), None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), None);
create_run_with_pull_request_record(
&state,
@ -9809,9 +9817,7 @@ slug = "fabro"
#[tokio::test]
async fn get_run_pull_request_returns_service_unavailable_without_github_credentials() {
let state = create_github_token_app_state(None, None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(None, None);
create_run_with_pull_request_record(
&state,
@ -9848,9 +9854,7 @@ slug = "fabro"
.header("content-type", "application/json")
.body(json!({ "message": "Not Found" }).to_string());
});
let state = create_github_token_app_state(Some("ghu_test"), Some(github.base_url()));
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), Some(github.base_url()));
create_run_with_pull_request_record(
&state,
@ -9897,9 +9901,7 @@ slug = "fabro"
.to_string(),
);
});
let state = create_github_token_app_state(Some("ghu_test"), Some(github.base_url()));
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), Some(github.base_url()));
create_completed_run_ready_for_pull_request(
&state,
@ -9955,9 +9957,7 @@ slug = "fabro"
#[tokio::test]
async fn create_run_pull_request_returns_conflict_when_record_exists() {
let state = create_github_token_app_state(None, None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(None, None);
create_run_with_pull_request_record(
&state,
@ -9994,9 +9994,7 @@ slug = "fabro"
#[tokio::test]
async fn create_run_pull_request_rejects_missing_repo_origin() {
let state = create_github_token_app_state(None, None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(None, None);
create_completed_run_ready_for_pull_request(
&state,
@ -10032,9 +10030,7 @@ slug = "fabro"
#[tokio::test]
async fn create_run_pull_request_returns_service_unavailable_without_github_credentials() {
let state = create_github_token_app_state(None, None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(None, None);
create_completed_run_ready_for_pull_request(
&state,
@ -10070,9 +10066,7 @@ slug = "fabro"
#[tokio::test]
async fn create_run_pull_request_rejects_non_github_origin_url() {
let state = create_github_token_app_state(Some("ghu_test"), None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), None);
create_completed_run_ready_for_pull_request(
&state,
@ -10194,9 +10188,7 @@ slug = "fabro"
#[tokio::test]
async fn merge_run_pull_request_rejects_invalid_method() {
let state = create_github_token_app_state(Some("ghu_test"), None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), None);
create_run_with_pull_request_record(
&state,
@ -10224,9 +10216,7 @@ slug = "fabro"
#[tokio::test]
async fn merge_run_pull_request_rejects_non_github_record_url() {
let state = create_github_token_app_state(Some("ghu_test"), None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), None);
create_run_with_pull_request_record(
&state,
@ -10255,9 +10245,7 @@ slug = "fabro"
#[tokio::test]
async fn merge_run_pull_request_returns_service_unavailable_without_github_credentials() {
let state = create_github_token_app_state(None, None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(None, None);
create_run_with_pull_request_record(
&state,
@ -10307,9 +10295,7 @@ slug = "fabro"
#[tokio::test]
async fn close_run_pull_request_rejects_non_github_record_url() {
let state = create_github_token_app_state(Some("ghu_test"), None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), None);
create_run_with_pull_request_record(
&state,
@ -10337,9 +10323,7 @@ slug = "fabro"
#[tokio::test]
async fn close_run_pull_request_returns_service_unavailable_without_github_credentials() {
let state = create_github_token_app_state(None, None);
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(None, None);
create_run_with_pull_request_record(
&state,
@ -10376,9 +10360,7 @@ slug = "fabro"
.header("content-type", "application/json")
.body(json!({ "message": "Not Found" }).to_string());
});
let state = create_github_token_app_state(Some("ghu_test"), Some(github.base_url()));
let app = build_router(Arc::clone(&state), AuthMode::Disabled);
let run_id = fixtures::RUN_1;
let (state, app, run_id) = pr_test_app(Some("ghu_test"), Some(github.base_url()));
create_run_with_pull_request_record(
&state,