Skip to content

Commit b0d53e6

Browse files
committed
fixed redis connection in auth.rs integration tests
1 parent 1eac05a commit b0d53e6

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

sentry/src/middleware/auth.rs

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ impl<A: Adapter + 'static> Middleware<A> for Authenticate {
1919
request: Request<Body>,
2020
application: &'a Application<A>,
2121
) -> Result<Request<Body>, ResponseError> {
22-
for_request(request, &application.adapter, application.redis.clone())
22+
for_request(request, &application.adapter, &application.redis.clone())
2323
.await
2424
.map_err(|error| {
2525
slog::error!(&application.logger, "{}", &error; "module" => "middleware-auth");
@@ -52,7 +52,7 @@ impl<A: Adapter + 'static> Middleware<A> for AuthRequired {
5252
async fn for_request(
5353
mut req: Request<Body>,
5454
adapter: &impl Adapter,
55-
redis: MultiplexedConnection,
55+
redis: &MultiplexedConnection,
5656
) -> Result<Request<Body>, Box<dyn error::Error>> {
5757
let referrer = req
5858
.headers()
@@ -128,37 +128,38 @@ fn get_request_ip(req: &Request<Body>) -> Option<String> {
128128
#[cfg(test)]
129129
mod test {
130130
use hyper::Request;
131-
132131
use adapter::DummyAdapter;
133132
use primitives::adapter::DummyAdapterOptions;
134-
use primitives::config::configuration;
133+
135134
use primitives::util::tests::prep_db::{AUTH, IDS};
136-
use std::env;
137135

138-
use crate::db::redis_connection;
136+
137+
use primitives::{
138+
config::configuration,
139+
Config,
140+
};
141+
142+
use deadpool::managed::Object;
143+
144+
use crate::{
145+
db::redis_pool::{Database, TESTS_POOL},
146+
Session,
147+
};
148+
use std::env;
139149

140150
use super::*;
141151

142-
async fn setup(db_index: usize) -> (DummyAdapter, MultiplexedConnection) {
152+
async fn setup() -> (DummyAdapter, Object<Database, crate::db::redis_pool::Error>) {
153+
let connection = TESTS_POOL.get().await.expect("Should return Object");
143154
let adapter_options = DummyAdapterOptions {
144155
dummy_identity: IDS["leader"],
145156
dummy_auth: IDS.clone(),
146157
dummy_auth_tokens: AUTH.clone(),
147158
};
148159
let config = configuration("development", None).expect("Dev config should be available");
149160
let url = env::var("REDIS_URL").unwrap_or_else(|_| String::from("redis://127.0.0.1:6379"));
150-
let mut redis = redis_connection(url.as_str())
151-
.await
152-
.expect("Couldn't connect to Redis");
153-
let _ = redis::cmd("SELECT")
154-
.arg(db_index)
155-
.query_async::<_, String>(&mut redis)
156-
.await;
157-
// run `FLUSHDB` to clean any leftovers of other tests
158-
let _ = redis::cmd("FLUSHDB")
159-
.query_async::<_, String>(&mut redis)
160-
.await;
161-
(DummyAdapter::init(adapter_options, &config), redis)
161+
162+
(DummyAdapter::init(adapter_options, &config), connection)
162163
}
163164

164165
#[tokio::test]
@@ -167,8 +168,8 @@ mod test {
167168
.body(Body::empty())
168169
.expect("should never fail!");
169170

170-
let (dummy_adapter, redis) = setup(0).await;
171-
let no_auth = for_request(no_auth_req, &dummy_adapter, redis.clone())
171+
let (dummy_adapter, database) = setup().await;
172+
let no_auth = for_request(no_auth_req, &dummy_adapter, &database)
172173
.await
173174
.expect("Handling the Request shouldn't have failed");
174175

@@ -182,7 +183,7 @@ mod test {
182183
.header(AUTHORIZATION, "Wrong Header")
183184
.body(Body::empty())
184185
.unwrap();
185-
let incorrect_auth = for_request(incorrect_auth_req, &dummy_adapter, redis.clone())
186+
let incorrect_auth = for_request(incorrect_auth_req, &dummy_adapter, &database)
186187
.await
187188
.expect("Handling the Request shouldn't have failed");
188189
assert!(
@@ -195,7 +196,7 @@ mod test {
195196
.header(AUTHORIZATION, "Bearer wrong-token")
196197
.body(Body::empty())
197198
.unwrap();
198-
match for_request(non_existent_token_req, &dummy_adapter, redis).await {
199+
match for_request(non_existent_token_req, &dummy_adapter, &database).await {
199200
Err(error) => {
200201
assert!(error.to_string().contains("no session token for this auth: wrong-token"), "Wrong error received");
201202
}
@@ -205,7 +206,7 @@ mod test {
205206

206207
#[tokio::test]
207208
async fn session_from_correct_authentication_token() {
208-
let (dummy_adapter, redis) = setup(1).await;
209+
let (dummy_adapter, database) = setup().await;
209210

210211
let token = AUTH["leader"].clone();
211212
let auth_header = format!("Bearer {}", token);
@@ -214,7 +215,7 @@ mod test {
214215
.body(Body::empty())
215216
.unwrap();
216217

217-
let altered_request = for_request(req, &dummy_adapter, redis)
218+
let altered_request = for_request(req, &dummy_adapter, &database)
218219
.await
219220
.expect("Valid requests should succeed");
220221

0 commit comments

Comments
 (0)