From ecbd26f1692b86a4a522889828967f5eb683e2f1 Mon Sep 17 00:00:00 2001 From: Alexander Liesenfeld Date: Sat, 31 Aug 2024 21:31:49 +0200 Subject: [PATCH] Avoid copying Cargo.lock --- .github/workflows/deploy-docs.yml | 37 +++ Cargo.toml | 5 +- docs/website/astro.config.mjs | 3 +- .../docs/getting_started/fundamentals.mdx | 3 +- src/api/adapter/local.rs | 2 + src/api/adapter/mod.rs | 4 + src/api/adapter/remote.rs | 6 +- src/api/proxy.rs | 7 +- src/api/server.rs | 35 ++- src/common/data.rs | 1 - src/server/builder.rs | 15 +- src/server/handler.rs | 12 + src/server/mod.rs | 2 +- src/server/state.rs | 14 +- tarpaulin.full.toml | 256 +++++++++--------- tarpaulin.toml | 4 +- 16 files changed, 247 insertions(+), 159 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..356cdbf --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,37 @@ +name: Deploy to GitHub Pages + +on: + # Trigger the workflow every time you push to the `main` branch + # Using a different branch name? Replace `main` with your branch’s name + push: + branches: [ development ] + # Allows you to run this workflow manually from the Actions tab on GitHub. + workflow_dispatch: + +# Allow this job to clone the repo and create a page deployment +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout your repository using git + uses: actions/checkout@v4 + - name: Install, build, and upload your site + uses: withastro/action@v2 + with: + path: ./docs/website # The root location of your Astro project inside the repository. (optional) + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 097f164..5cda427 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,16 +64,15 @@ urlencoding = "2.1.2" [features] default = ["cookies"] -standalone = ["clap", "env_logger", "static-mock", "http2", "cookies", "remote", "remote-https"] # enables standalone mode +standalone = ["clap", "env_logger", "record", "http2", "cookies", "remote", "remote-https"] # enables standalone mode color = ["colored"] # enables colorful output in standalone mode cookies = ["headers"] # enables support for matching cookies remote = ["hyper-util/client-legacy", "hyper-util/http2"] # allows to connect to remote mock servers remote-https = ["remote", "rustls", "hyper-rustls", "hyper-rustls/http2"] # allows to connect to remote mock servers via HTTPS proxy = ["remote-https", "hyper-util/client-legacy", "hyper-util/http2", "hyper-rustls", "hyper-rustls/http2"] # enables proxy functionality -static-mock = ["serde_yaml"] # allows to read mock definitions from the file system https = ["rustls", "rcgen", "tokio-rustls", "rustls-pemfile", "rustls/ring", "tls-detect"] # enables httpmock server support for TLS/HTTPS http2 = ["hyper/http2", "hyper-util/http2"] # enables httpmocks server support for HTTP2 -record = ["static-mock", "proxy"] +record = ["proxy", "serde_yaml"] experimental = [] # marker feature for experimental features [[bin]] diff --git a/docs/website/astro.config.mjs b/docs/website/astro.config.mjs index b4e8996..e654896 100644 --- a/docs/website/astro.config.mjs +++ b/docs/website/astro.config.mjs @@ -3,7 +3,8 @@ import starlight from '@astrojs/starlight'; // https://astro.build/config export default defineConfig({ - site: 'https://alexliesenfeld.github.io/httpmock', + site: 'https://alexliesenfeld.github.io', + base: 'httpmock', // so that 'https://alexliesenfeld.github.io/httpmock' will be set as the base path integrations: [ starlight({ title: 'httpmock Tutorial', diff --git a/docs/website/src/content/docs/getting_started/fundamentals.mdx b/docs/website/src/content/docs/getting_started/fundamentals.mdx index 3f228d5..769caf5 100644 --- a/docs/website/src/content/docs/getting_started/fundamentals.mdx +++ b/docs/website/src/content/docs/getting_started/fundamentals.mdx @@ -108,8 +108,7 @@ The crate provides the following Cargo features: - `cookies`: Enables request matchers for parsing and matching values in cookies - `proxy`: Enables the mock server to function as a proxy server -- `record`: Enables functionality to record requests and responses (most useful in combination with the `proxy` feature) -- `static-mock`: Enables reading mock specifications from YAML files (e.g., recorded responses) +- `record`: Enables functionality to record requests and responses (most useful in combination with the `proxy` feature). Enables reading mock specifications from YAML files (e.g., recorded responses) - `https`: Enables the mock server to provide a unified port for both, HTTP and HTTPS. Attention: This feature is experimental. Hence, there are no guarantees that this feature will work. - `http2`: Enables mock server support for HTTP2 - `standalone`: Enables standalone mode diff --git a/src/api/adapter/local.rs b/src/api/adapter/local.rs index 1b7d9c4..34c293e 100644 --- a/src/api/adapter/local.rs +++ b/src/api/adapter/local.rs @@ -164,6 +164,7 @@ impl MockServerAdapter for LocalMockServerAdapter { Ok(()) } + #[cfg(feature = "record")] async fn export_recording(&self, id: usize) -> Result, ServerAdapterError> { Ok(self .state @@ -171,6 +172,7 @@ impl MockServerAdapter for LocalMockServerAdapter { .map_err(|err| UpstreamError(err.to_string()))?) } + #[cfg(feature = "record")] async fn create_mocks_from_recording<'a>( &self, recording_file_content: &'a str, diff --git a/src/api/adapter/mod.rs b/src/api/adapter/mod.rs index 5d40f3c..f1ad3f1 100644 --- a/src/api/adapter/mod.rs +++ b/src/api/adapter/mod.rs @@ -76,7 +76,11 @@ pub trait MockServerAdapter { ) -> Result; async fn delete_recording(&self, id: usize) -> Result<(), ServerAdapterError>; async fn delete_all_recordings(&self) -> Result<(), ServerAdapterError>; + + #[cfg(feature = "record")] async fn export_recording(&self, id: usize) -> Result, ServerAdapterError>; + + #[cfg(feature = "record")] async fn create_mocks_from_recording<'a>( &self, recording_file_content: &'a str, diff --git a/src/api/adapter/remote.rs b/src/api/adapter/remote.rs index eab7742..8fecf89 100644 --- a/src/api/adapter/remote.rs +++ b/src/api/adapter/remote.rs @@ -1,4 +1,9 @@ use std::{borrow::Borrow, net::SocketAddr, sync::Arc}; +use crate::{ + common::{ + data::{ForwardingRuleConfig, ProxyRuleConfig, RecordingRuleConfig} + }, +}; use crate::api::{ adapter::{ @@ -22,7 +27,6 @@ use crate::{ }, http::HttpClient, }, - ForwardingRuleConfig, ProxyRuleConfig, RecordingRuleConfig, }; pub struct RemoteMockServerAdapter { diff --git a/src/api/proxy.rs b/src/api/proxy.rs index afa3eff..049b343 100644 --- a/src/api/proxy.rs +++ b/src/api/proxy.rs @@ -2,9 +2,10 @@ use crate::{ api::server::MockServer, common::{ data::RequestRequirements, + data::RecordingRuleConfig, util::{write_file, Join}, }, - RecordingRuleConfig, When, + When, }; use std::{ cell::Cell, @@ -163,6 +164,7 @@ impl<'a> Recording<'a> { /// /// # Errors /// Errors if the file cannot be written due to issues like directory permissions, unavailable disk space, or other I/O errors. + #[cfg(feature = "record")] pub fn save_to, IntoString: Into>( &self, dir: PathRef, @@ -179,6 +181,7 @@ impl<'a> Recording<'a> { /// /// # Returns /// Returns an `async` `Result` with the `PathBuf` of the saved file or an error if unable to save. + #[cfg(feature = "record")] pub async fn save_to_async, IntoString: Into>( &self, dir: PathRef, @@ -214,6 +217,7 @@ impl<'a> Recording<'a> { /// /// # Returns /// Returns a `Result` with the `PathBuf` to the saved file or an error. + #[cfg(feature = "record")] pub fn save>( &self, scenario_name: IntoString, @@ -228,6 +232,7 @@ impl<'a> Recording<'a> { /// /// # Returns /// Returns an `async` `Result` with the `PathBuf` of the saved file or an error. + #[cfg(feature = "record")] pub async fn save_async>( &self, scenario: IntoString, diff --git a/src/api/server.rs b/src/api/server.rs index 536430d..950a9b5 100644 --- a/src/api/server.rs +++ b/src/api/server.rs @@ -1,42 +1,53 @@ #[cfg(feature = "remote")] use crate::api::RemoteMockServerAdapter; use crate::api::{ - proxy::{ - ForwardingRule, ForwardingRuleBuilder, ProxyRule, ProxyRuleBuilder, Recording, - RecordingRuleBuilder, - }, spec::{Then, When}, }; #[cfg(feature = "remote")] use crate::common::http::HttpMockHttpClient; -use crate::common::data::ForwardingRuleConfig; - use crate::{ api::{LocalMockServerAdapter, MockServerAdapter}, common::{ data::{MockDefinition, MockServerHttpResponse, RequestRequirements}, runtime, - util::{read_env, read_file_async, with_retry, Join}, + util::{read_env, with_retry, Join}, + }, +}; + +#[cfg(feature = "proxy")] +use crate::{ + api::proxy::{ForwardingRuleBuilder, ForwardingRule, ProxyRuleBuilder, ProxyRule}, + common::{ + util::read_file_async, + data::{ForwardingRuleConfig, ProxyRuleConfig}, }, }; +#[cfg(feature = "record")] +use crate::{ + api::{ + common::data::RecordingRuleConfig, + mock::MockSet, + proxy::{Recording, RecordingRuleBuilder} + }, +}; + +#[cfg(feature = "record")] +use std::{path::PathBuf}; + use crate::{ - api::mock::MockSet, server::{state::HttpMockStateManager, HttpMockServerBuilder}, }; -#[cfg(feature = "proxy")] -use crate::ProxyRuleConfig; -use crate::{Mock, RecordingRuleConfig}; +use crate::Mock; use async_object_pool::Pool; use lazy_static::lazy_static; use std::{ cell::Cell, future::pending, net::{SocketAddr, ToSocketAddrs}, - path::PathBuf, rc::Rc, sync::Arc, thread, diff --git a/src/common/data.rs b/src/common/data.rs index 0e34b0f..64b5ccd 100644 --- a/src/common/data.rs +++ b/src/common/data.rs @@ -918,7 +918,6 @@ pub struct Mismatch { // Configs and Builders // ************************************************************************************************* -#[cfg(feature = "record")] #[derive(Serialize, Deserialize, Clone, Default)] pub struct RecordingRuleConfig { pub request_requirements: RequestRequirements, diff --git a/src/server/builder.rs b/src/server/builder.rs index a095970..5b0ca71 100644 --- a/src/server/builder.rs +++ b/src/server/builder.rs @@ -4,10 +4,13 @@ use crate::common::http::{HttpClient, HttpMockHttpClient}; use crate::server::server::MockServerHttpsConfig; #[cfg(feature = "https")] use crate::server::tls::{CertificateResolverFactory, GeneratingCertificateResolverFactory}; +#[cfg(any(feature = "record", feature = "record"))] +use crate::server::{ + persistence::read_static_mock_definitions, +}; use crate::server::{ handler::HttpMockHandler, - persistence::read_static_mock_definitions, server::{MockServer, MockServerConfig}, state::{HttpMockStateManager, StateManager}, HttpMockServer, @@ -190,7 +193,7 @@ pub struct HttpMockServerBuilder { expose: Option, print_access_log: Option, history_limit: Option, - #[cfg(feature = "static-mock")] + #[cfg(feature = "record")] static_mock_dir: Option, #[cfg(feature = "https")] https_config_builder: HttpsConfigBuilder, @@ -209,7 +212,7 @@ impl HttpMockServerBuilder { port: None, expose: None, history_limit: None, - #[cfg(feature = "static-mock")] + #[cfg(feature = "record")] static_mock_dir: None, #[cfg(feature = "proxy")] http_client: None, @@ -321,7 +324,7 @@ impl HttpMockServerBuilder { /// /// # Returns /// A modified `HttpMockServerBuilder` instance for method chaining. - #[cfg(feature = "static-mock")] + #[cfg(feature = "record")] pub fn static_mock_dir(mut self, path: PathBuf) -> Self { self.static_mock_dir = Some(path); self @@ -334,7 +337,7 @@ impl HttpMockServerBuilder { /// /// # Returns /// A modified `HttpMockServerBuilder` instance for method chaining. - #[cfg(feature = "static-mock")] + #[cfg(feature = "record")] pub fn static_mock_dir_option(mut self, path: Option) -> Self { self.static_mock_dir = path; self @@ -482,7 +485,7 @@ impl HttpMockServerBuilder { .http_client .unwrap_or_else(|| Arc::new(HttpMockHttpClient::new(None))); - #[cfg(feature = "static-mock")] + #[cfg(feature = "record")] if let Some(dir) = self.static_mock_dir { read_static_mock_definitions(dir, state.as_ref())?; } diff --git a/src/server/handler.rs b/src/server/handler.rs index 66696a6..a8e63d2 100644 --- a/src/server/handler.rs +++ b/src/server/handler.rs @@ -81,7 +81,9 @@ enum RoutePath { ForwardingRuleCollection, ProxyRuleCollection, SingleProxyRule, + #[cfg(feature = "record")] RecordingCollection, + #[cfg(feature = "record")] SingleRecording, } @@ -157,11 +159,13 @@ where Method::DELETE => return self.handle_delete_proxy_rule(params), _ => {} }, + #[cfg(feature = "record")] RoutePath::RecordingCollection => match method { Method::POST => return self.handle_add_recording_matcher(req), Method::DELETE => return self.handle_delete_all_recording_matchers(), _ => {} }, + #[cfg(feature = "record")] RoutePath::SingleRecording => match method { Method::GET => return self.handle_read_recording(params), Method::DELETE => return self.handle_delete_recording(params), @@ -196,7 +200,10 @@ where "/__httpmock__/forwarding_rules", RoutePath::ForwardingRuleCollection, ); + + #[cfg(feature = "record")] path_tree.insert("/__httpmock__/proxy_rules", RoutePath::ProxyRuleCollection); + #[cfg(feature = "record")] path_tree.insert("/__httpmock__/recordings", RoutePath::RecordingCollection); } @@ -306,12 +313,14 @@ where return response::<()>(StatusCode::NO_CONTENT, None); } + #[cfg(feature = "record")] fn handle_add_recording_matcher(&self, req: Request) -> Result, Error> { let req_req: RecordingRuleConfig = parse_json_body(req)?; let active_recording = self.state.create_recording(req_req); return response(StatusCode::CREATED, Some(active_recording)); } + #[cfg(feature = "record")] fn handle_delete_recording(&self, params: Path) -> Result, Error> { let deleted = self.state.delete_proxy_rule(param("id", params)?); let status_code = if deleted.is_some() { @@ -322,11 +331,13 @@ where return response::<()>(status_code, None); } + #[cfg(feature = "record")] fn handle_delete_all_recording_matchers(&self) -> Result, Error> { self.state.delete_all_recordings(); return response::<()>(StatusCode::NO_CONTENT, None); } + #[cfg(feature = "record")] fn handle_read_recording(&self, params: Path) -> Result, Error> { let rec = self.state.export_recording(param("id", params)?)?; let status_code = rec @@ -335,6 +346,7 @@ where return response(status_code, rec); } + #[cfg(feature = "record")] fn handle_load_recording(&self, req: Request) -> Result, Error> { let recording_file_content = std::str::from_utf8(&req.body()) .map_err(|err| RequestConversionError(err.to_string()))?; diff --git a/src/server/mod.rs b/src/server/mod.rs index 7e29efd..862d8c1 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -17,7 +17,7 @@ mod server; pub mod state; mod util; -#[cfg(feature = "static-mock")] +#[cfg(feature = "record")] mod persistence; #[cfg(feature = "https")] diff --git a/src/server/state.rs b/src/server/state.rs index 900fa78..ed17d9e 100644 --- a/src/server/state.rs +++ b/src/server/state.rs @@ -10,11 +10,17 @@ use crate::{ server::{ matchers, matchers::{all, Matcher}, - persistence::{deserialize_mock_defs_from_yaml, serialize_mock_defs_to_yaml}, state::Error::{BodyMethodInvalid, DataConversionError, StaticMockError, ValidationError}, }, }; +#[cfg(feature = "record")] +use crate::{ + server::{ + persistence::{deserialize_mock_defs_from_yaml, serialize_mock_defs_to_yaml}, + }, +}; + use crate::common::data::{ForwardingRuleConfig, ProxyRuleConfig, RecordingRuleConfig}; use bytes::Bytes; use std::{ @@ -95,7 +101,11 @@ pub(crate) trait StateManager { fn create_recording(&self, config: RecordingRuleConfig) -> ActiveRecording; fn delete_recording(&self, recording_id: usize) -> Option; fn delete_all_recordings(&self); + + #[cfg(feature = "record")] fn export_recording(&self, id: usize) -> Result, Error>; + + #[cfg(feature = "record")] fn load_mocks_from_recording(&self, recording_file_content: &str) -> Result, Error>; fn find_forward_rule<'a>( @@ -396,6 +406,7 @@ impl StateManager for HttpMockStateManager { log::debug!("Deleted all recorders"); } + #[cfg(feature = "record")] fn export_recording(&self, id: usize) -> Result, Error> { let mut state = self.state.lock().unwrap(); @@ -409,6 +420,7 @@ impl StateManager for HttpMockStateManager { Ok(None) } + #[cfg(feature = "record")] fn load_mocks_from_recording(&self, recording_file_content: &str) -> Result, Error> { let all_static_mock_defs = deserialize_mock_defs_from_yaml(recording_file_content) .map_err(|err| DataConversionError(err.to_string()))?; diff --git a/tarpaulin.full.toml b/tarpaulin.full.toml index d1dad87..eb28857 100644 --- a/tarpaulin.full.toml +++ b/tarpaulin.full.toml @@ -61,68 +61,68 @@ release = true features = "standalone,cookies,remote,proxy" release = true -[static-mock] -features = "static-mock" +[record] +features = "record" release = true -[standalone.static-mock] -features = "standalone,static-mock" +[standalone.record] +features = "standalone,record" release = true -[cookies.static-mock] -features = "cookies,static-mock" +[cookies.record] +features = "cookies,record" release = true -[standalone.cookies.static-mock] -features = "standalone,cookies,static-mock" +[standalone.cookies.record] +features = "standalone,cookies,record" release = true -[remote.static-mock] -features = "remote,static-mock" +[remote.record] +features = "remote,record" release = true -[standalone.remote.static-mock] -features = "standalone,remote,static-mock" +[standalone.remote.record] +features = "standalone,remote,record" release = true -[cookies.remote.static-mock] -features = "cookies,remote,static-mock" +[cookies.remote.record] +features = "cookies,remote,record" release = true -[standalone.cookies.remote.static-mock] -features = "standalone,cookies,remote,static-mock" +[standalone.cookies.remote.record] +features = "standalone,cookies,remote,record" release = true -[proxy.static-mock] -features = "proxy,static-mock" +[proxy.record] +features = "proxy,record" release = true -[standalone.proxy.static-mock] -features = "standalone,proxy,static-mock" +[standalone.proxy.record] +features = "standalone,proxy,record" release = true -[cookies.proxy.static-mock] -features = "cookies,proxy,static-mock" +[cookies.proxy.record] +features = "cookies,proxy,record" release = true -[standalone.cookies.proxy.static-mock] -features = "standalone,cookies,proxy,static-mock" +[standalone.cookies.proxy.record] +features = "standalone,cookies,proxy,record" release = true -[remote.proxy.static-mock] -features = "remote,proxy,static-mock" +[remote.proxy.record] +features = "remote,proxy,record" release = true -[standalone.remote.proxy.static-mock] -features = "standalone,remote,proxy,static-mock" +[standalone.remote.proxy.record] +features = "standalone,remote,proxy,record" release = true -[cookies.remote.proxy.static-mock] -features = "cookies,remote,proxy,static-mock" +[cookies.remote.proxy.record] +features = "cookies,remote,proxy,record" release = true -[standalone.cookies.remote.proxy.static-mock] -features = "standalone,cookies,remote,proxy,static-mock" +[standalone.cookies.remote.proxy.record] +features = "standalone,cookies,remote,proxy,record" release = true [https] @@ -189,68 +189,68 @@ release = true features = "standalone,cookies,remote,proxy,https" release = true -[static-mock.https] -features = "static-mock,https" +[record.https] +features = "record,https" release = true -[standalone.static-mock.https] -features = "standalone,static-mock,https" +[standalone.record.https] +features = "standalone,record,https" release = true -[cookies.static-mock.https] -features = "cookies,static-mock,https" +[cookies.record.https] +features = "cookies,record,https" release = true -[standalone.cookies.static-mock.https] -features = "standalone,cookies,static-mock,https" +[standalone.cookies.record.https] +features = "standalone,cookies,record,https" release = true -[remote.static-mock.https] -features = "remote,static-mock,https" +[remote.record.https] +features = "remote,record,https" release = true -[standalone.remote.static-mock.https] -features = "standalone,remote,static-mock,https" +[standalone.remote.record.https] +features = "standalone,remote,record,https" release = true -[cookies.remote.static-mock.https] -features = "cookies,remote,static-mock,https" +[cookies.remote.record.https] +features = "cookies,remote,record,https" release = true -[standalone.cookies.remote.static-mock.https] -features = "standalone,cookies,remote,static-mock,https" +[standalone.cookies.remote.record.https] +features = "standalone,cookies,remote,record,https" release = true -[proxy.static-mock.https] -features = "proxy,static-mock,https" +[proxy.record.https] +features = "proxy,record,https" release = true -[standalone.proxy.static-mock.https] -features = "standalone,proxy,static-mock,https" +[standalone.proxy.record.https] +features = "standalone,proxy,record,https" release = true -[cookies.proxy.static-mock.https] -features = "cookies,proxy,static-mock,https" +[cookies.proxy.record.https] +features = "cookies,proxy,record,https" release = true -[standalone.cookies.proxy.static-mock.https] -features = "standalone,cookies,proxy,static-mock,https" +[standalone.cookies.proxy.record.https] +features = "standalone,cookies,proxy,record,https" release = true -[remote.proxy.static-mock.https] -features = "remote,proxy,static-mock,https" +[remote.proxy.record.https] +features = "remote,proxy,record,https" release = true -[standalone.remote.proxy.static-mock.https] -features = "standalone,remote,proxy,static-mock,https" +[standalone.remote.proxy.record.https] +features = "standalone,remote,proxy,record,https" release = true -[cookies.remote.proxy.static-mock.https] -features = "cookies,remote,proxy,static-mock,https" +[cookies.remote.proxy.record.https] +features = "cookies,remote,proxy,record,https" release = true -[standalone.cookies.remote.proxy.static-mock.https] -features = "standalone,cookies,remote,proxy,static-mock,https" +[standalone.cookies.remote.proxy.record.https] +features = "standalone,cookies,remote,proxy,record,https" release = true [http2] @@ -317,68 +317,68 @@ release = true features = "standalone,cookies,remote,proxy,http2" release = true -[static-mock.http2] -features = "static-mock,http2" +[record.http2] +features = "record,http2" release = true -[standalone.static-mock.http2] -features = "standalone,static-mock,http2" +[standalone.record.http2] +features = "standalone,record,http2" release = true -[cookies.static-mock.http2] -features = "cookies,static-mock,http2" +[cookies.record.http2] +features = "cookies,record,http2" release = true -[standalone.cookies.static-mock.http2] -features = "standalone,cookies,static-mock,http2" +[standalone.cookies.record.http2] +features = "standalone,cookies,record,http2" release = true -[remote.static-mock.http2] -features = "remote,static-mock,http2" +[remote.record.http2] +features = "remote,record,http2" release = true -[standalone.remote.static-mock.http2] -features = "standalone,remote,static-mock,http2" +[standalone.remote.record.http2] +features = "standalone,remote,record,http2" release = true -[cookies.remote.static-mock.http2] -features = "cookies,remote,static-mock,http2" +[cookies.remote.record.http2] +features = "cookies,remote,record,http2" release = true -[standalone.cookies.remote.static-mock.http2] -features = "standalone,cookies,remote,static-mock,http2" +[standalone.cookies.remote.record.http2] +features = "standalone,cookies,remote,record,http2" release = true -[proxy.static-mock.http2] -features = "proxy,static-mock,http2" +[proxy.record.http2] +features = "proxy,record,http2" release = true -[standalone.proxy.static-mock.http2] -features = "standalone,proxy,static-mock,http2" +[standalone.proxy.record.http2] +features = "standalone,proxy,record,http2" release = true -[cookies.proxy.static-mock.http2] -features = "cookies,proxy,static-mock,http2" +[cookies.proxy.record.http2] +features = "cookies,proxy,record,http2" release = true -[standalone.cookies.proxy.static-mock.http2] -features = "standalone,cookies,proxy,static-mock,http2" +[standalone.cookies.proxy.record.http2] +features = "standalone,cookies,proxy,record,http2" release = true -[remote.proxy.static-mock.http2] -features = "remote,proxy,static-mock,http2" +[remote.proxy.record.http2] +features = "remote,proxy,record,http2" release = true -[standalone.remote.proxy.static-mock.http2] -features = "standalone,remote,proxy,static-mock,http2" +[standalone.remote.proxy.record.http2] +features = "standalone,remote,proxy,record,http2" release = true -[cookies.remote.proxy.static-mock.http2] -features = "cookies,remote,proxy,static-mock,http2" +[cookies.remote.proxy.record.http2] +features = "cookies,remote,proxy,record,http2" release = true -[standalone.cookies.remote.proxy.static-mock.http2] -features = "standalone,cookies,remote,proxy,static-mock,http2" +[standalone.cookies.remote.proxy.record.http2] +features = "standalone,cookies,remote,proxy,record,http2" release = true [https.http2] @@ -445,68 +445,68 @@ release = true features = "standalone,cookies,remote,proxy,https,http2" release = true -[static-mock.https.http2] -features = "static-mock,https,http2" +[record.https.http2] +features = "record,https,http2" release = true -[standalone.static-mock.https.http2] -features = "standalone,static-mock,https,http2" +[standalone.record.https.http2] +features = "standalone,record,https,http2" release = true -[cookies.static-mock.https.http2] -features = "cookies,static-mock,https,http2" +[cookies.record.https.http2] +features = "cookies,record,https,http2" release = true -[standalone.cookies.static-mock.https.http2] -features = "standalone,cookies,static-mock,https,http2" +[standalone.cookies.record.https.http2] +features = "standalone,cookies,record,https,http2" release = true -[remote.static-mock.https.http2] -features = "remote,static-mock,https,http2" +[remote.record.https.http2] +features = "remote,record,https,http2" release = true -[standalone.remote.static-mock.https.http2] -features = "standalone,remote,static-mock,https,http2" +[standalone.remote.record.https.http2] +features = "standalone,remote,record,https,http2" release = true -[cookies.remote.static-mock.https.http2] -features = "cookies,remote,static-mock,https,http2" +[cookies.remote.record.https.http2] +features = "cookies,remote,record,https,http2" release = true -[standalone.cookies.remote.static-mock.https.http2] -features = "standalone,cookies,remote,static-mock,https,http2" +[standalone.cookies.remote.record.https.http2] +features = "standalone,cookies,remote,record,https,http2" release = true -[proxy.static-mock.https.http2] -features = "proxy,static-mock,https,http2" +[proxy.record.https.http2] +features = "proxy,record,https,http2" release = true -[standalone.proxy.static-mock.https.http2] -features = "standalone,proxy,static-mock,https,http2" +[standalone.proxy.record.https.http2] +features = "standalone,proxy,record,https,http2" release = true -[cookies.proxy.static-mock.https.http2] -features = "cookies,proxy,static-mock,https,http2" +[cookies.proxy.record.https.http2] +features = "cookies,proxy,record,https,http2" release = true -[standalone.cookies.proxy.static-mock.https.http2] -features = "standalone,cookies,proxy,static-mock,https,http2" +[standalone.cookies.proxy.record.https.http2] +features = "standalone,cookies,proxy,record,https,http2" release = true -[remote.proxy.static-mock.https.http2] -features = "remote,proxy,static-mock,https,http2" +[remote.proxy.record.https.http2] +features = "remote,proxy,record,https,http2" release = true -[standalone.remote.proxy.static-mock.https.http2] -features = "standalone,remote,proxy,static-mock,https,http2" +[standalone.remote.proxy.record.https.http2] +features = "standalone,remote,proxy,record,https,http2" release = true -[cookies.remote.proxy.static-mock.https.http2] -features = "cookies,remote,proxy,static-mock,https,http2" +[cookies.remote.proxy.record.https.http2] +features = "cookies,remote,proxy,record,https,http2" release = true -[standalone.cookies.remote.proxy.static-mock.https.http2] -features = "standalone,cookies,remote,proxy,static-mock,https,http2" +[standalone.cookies.remote.proxy.record.https.http2] +features = "standalone,cookies,remote,proxy,record,https,http2" release = true [report] diff --git a/tarpaulin.toml b/tarpaulin.toml index 59d71d0..59a12c3 100644 --- a/tarpaulin.toml +++ b/tarpaulin.toml @@ -1,10 +1,10 @@ [remote] -features = "remote,proxy,http2,static-mock,cookies" +features = "remote,proxy,http2,record,cookies" release = false [standalone] -features = "standalone,color,cookies,proxy,static-mock,http2" +features = "standalone,color,cookies,proxy,record,http2" release = true [report]