✅ test: start adding Bearer Auth so Prometheus can connect to the scraper API
parent
140434cf66
commit
96fdf642c3
|
@ -265,8 +265,9 @@ mod tests {
|
|||
struct TestCase {
|
||||
// Inputs
|
||||
path_rest: &'static str,
|
||||
auth_header: Option <&'static str>,
|
||||
valid_key: Option <&'static str>,
|
||||
input_key: Option <&'static str>,
|
||||
x_api_key: Option <&'static str>,
|
||||
|
||||
// Expected
|
||||
expected_status: StatusCode,
|
||||
|
@ -287,9 +288,15 @@ mod tests {
|
|||
x
|
||||
}
|
||||
|
||||
fn input_key (&self, v: Option <&'static str>) -> Self {
|
||||
fn auth_header (&self, v: Option <&'static str>) -> Self {
|
||||
let mut x = self.clone ();
|
||||
x.input_key = v;
|
||||
x.auth_header = v;
|
||||
x
|
||||
}
|
||||
|
||||
fn x_api_key (&self, v: Option <&'static str>) -> Self {
|
||||
let mut x = self.clone ();
|
||||
x.x_api_key = v;
|
||||
x
|
||||
}
|
||||
|
||||
|
@ -322,8 +329,11 @@ mod tests {
|
|||
.method ("GET")
|
||||
.uri (format! ("http://127.0.0.1:4000/scraper/{}", self.path_rest));
|
||||
|
||||
if let Some (input_key) = self.input_key {
|
||||
input = input.header ("X-ApiKey", input_key);
|
||||
if let Some (auth_header) = self.auth_header {
|
||||
input = input.header ("Authorization", auth_header);
|
||||
}
|
||||
if let Some (x_api_key) = self.x_api_key {
|
||||
input = input.header ("X-ApiKey", x_api_key);
|
||||
}
|
||||
let input = input.body (Body::empty ()).unwrap ();
|
||||
|
||||
|
@ -370,7 +380,8 @@ mod tests {
|
|||
let base_case = TestCase {
|
||||
path_rest: "v1/test",
|
||||
valid_key: Some ("bogus"),
|
||||
input_key: Some ("bogus"),
|
||||
auth_header: None,
|
||||
x_api_key: Some ("bogus"),
|
||||
expected_status: StatusCode::OK,
|
||||
expected_headers: vec! [
|
||||
("content-type", "text/plain"),
|
||||
|
@ -378,21 +389,40 @@ mod tests {
|
|||
expected_body: "You're valid!\n".to_string (),
|
||||
};
|
||||
|
||||
for case in &[
|
||||
base_case.clone (),
|
||||
base_case.path_rest ("v9999/test")
|
||||
.expected (StatusCode::NOT_FOUND, strings::UNKNOWN_API_VERSION),
|
||||
base_case.valid_key (None)
|
||||
.expected (StatusCode::FORBIDDEN, strings::FORBIDDEN),
|
||||
base_case.input_key (Some ("borgus"))
|
||||
.expected (StatusCode::FORBIDDEN, strings::FORBIDDEN),
|
||||
base_case.path_rest ("v1/toast")
|
||||
.expected (StatusCode::NOT_FOUND, strings::UNKNOWN_API_ENDPOINT),
|
||||
base_case.input_key (None)
|
||||
.expected (StatusCode::FORBIDDEN, strings::NO_API_KEY),
|
||||
] {
|
||||
case.test ().await;
|
||||
}
|
||||
base_case
|
||||
.test ().await;
|
||||
|
||||
base_case
|
||||
.path_rest ("v9999/test")
|
||||
.expected (StatusCode::NOT_FOUND, strings::UNKNOWN_API_VERSION)
|
||||
.test ().await;
|
||||
|
||||
base_case
|
||||
.valid_key (None)
|
||||
.expected (StatusCode::FORBIDDEN, strings::FORBIDDEN)
|
||||
.test ().await;
|
||||
|
||||
base_case
|
||||
.x_api_key (Some ("borgus"))
|
||||
.expected (StatusCode::FORBIDDEN, strings::FORBIDDEN)
|
||||
.test ().await;
|
||||
|
||||
base_case
|
||||
.path_rest ("v1/toast")
|
||||
.expected (StatusCode::NOT_FOUND, strings::UNKNOWN_API_ENDPOINT)
|
||||
.test ().await;
|
||||
|
||||
base_case
|
||||
.x_api_key (None)
|
||||
.expected (StatusCode::FORBIDDEN, strings::NO_API_KEY)
|
||||
.test ().await;
|
||||
|
||||
base_case
|
||||
.x_api_key (None)
|
||||
.auth_header (Some ("Bearer: bogus"))
|
||||
.expected (StatusCode::FORBIDDEN, strings::NO_API_KEY)
|
||||
.test ().await;
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue