graphile_worker_admin_ui 0.2.1

Embedded Leptos admin UI for graphile_worker
Documentation
use super::*;

#[tokio::test]
async fn add_job_rejects_job_key_mode_without_key() {
    let pool = lazy_pool();
    let database: graphile_worker::Database = pool.clone().into();
    let state = Arc::new(AppState {
        pool,
        utils: WorkerUtils::new(database, "graphile_worker".to_string()),
        schema: Schema::new("graphile_worker"),
        schema_name: "graphile_worker".to_string(),
        auth: AdminAuthConfig::None,
        csrf_token: "csrf".to_string(),
        read_only: false,
    });

    let error = add_job(
        State(state),
        Json(AddJobRequest {
            identifier: "send_email".to_string(),
            payload: serde_json::json!({}),
            queue: None,
            run_at: None,
            max_attempts: None,
            key: None,
            job_key_mode: Some(JobKeyModeRequest::Replace),
            priority: None,
            flags: None,
        }),
    )
    .await
    .expect_err("request should be rejected before reaching the database");

    assert_eq!(error.status, StatusCode::BAD_REQUEST);
    assert!(error.message.contains("key"));
}

#[test]
fn job_filters_ignore_whitespace_only_search() {
    let args = ListJobsParams {
        state: JobState::All,
        identifier: None,
        queue: None,
        search: Some("   ".to_string()),
        limit: default_limit(),
        offset: 0,
    };
    let mut query = QueryBuilder::<Postgres>::new("where true");

    apply_job_filters(&mut query, &args);

    assert_eq!(query.sql(), "where true");
}