use crate::TestServer;
use crate::TestServerBuilder;
use crate::Transport;
use crate::internals::ErrorMessage;
use crate::transport_layer::IntoTransportLayer;
use anyhow::Result;
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct TestServerConfig {
pub transport: Option<Transport>,
pub save_cookies: bool,
pub expect_success_by_default: bool,
pub restrict_requests_with_http_scheme: bool,
pub default_content_type: Option<String>,
}
impl TestServerConfig {
pub fn new() -> Self {
Default::default()
}
pub fn build<A>(self, app: A) -> TestServer
where
A: IntoTransportLayer,
{
self.try_build(app)
.error_message("Failed to build TestServer")
}
pub fn try_build<A>(self, app: A) -> Result<TestServer>
where
A: IntoTransportLayer,
{
TestServer::try_new_with_config(app, self)
}
}
impl Default for TestServerConfig {
fn default() -> Self {
Self {
transport: None,
save_cookies: false,
expect_success_by_default: false,
restrict_requests_with_http_scheme: false,
default_content_type: None,
}
}
}
impl From<TestServerBuilder> for TestServerConfig {
fn from(builder: TestServerBuilder) -> Self {
builder.into_config()
}
}