use httpmock::prelude::*;
use serde_json::json;
const TOKEN: &str = "token-here";
#[test]
fn test_squadcast() {
tracing_subscriber::fmt::init();
let (server, _guard) = mock_sc();
let test_title = "this is a test summary";
let test_description = "this is a test description";
let mock = server.mock(|when, then| {
when.method(POST)
.path(format!("/v2/incidents/api/{TOKEN}"))
.json_body(json!({
"message": test_title,
"description": test_description,
"priority": "P2",
}));
then.status(202);
});
airbag::trigger(
airbag::Alert::builder()
.title(test_title)
.description(test_description),
)
.wait_processed();
mock.assert();
}
fn mock_sc() -> (MockServer, airbag::ConfiguredHubGuard) {
let server = MockServer::start();
let guard = airbag::configure_thread_local(
airbag::backends::SquadCast::builder()
.token(TOKEN)
.region("eu")
.base_url(server.url(""))
.build(),
);
(server, guard)
}