Skip to content

Commit

Permalink
Adjusted the tests (basically adding .awaits)
Browse files Browse the repository at this point in the history
Postgres tests are still not working because with each test we need to spawn a brand new database (best done inside a docker container) from within the tests
  • Loading branch information
mariocynicys committed Aug 5, 2023
1 parent 5685864 commit 0981254
Show file tree
Hide file tree
Showing 8 changed files with 538 additions and 320 deletions.
17 changes: 11 additions & 6 deletions teos/src/api/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -841,13 +841,18 @@ mod tests_methods {
internal_api
.get_watcher()
.add_appointment(appointment.clone(), signature.clone())
.await
.unwrap();
internal_api.get_watcher().get_responder().add_tracker(
uuid,
get_random_breach(),
user_id,
ConfirmationStatus::ConfirmedIn(100),
);
internal_api
.get_watcher()
.get_responder()
.add_tracker(
uuid,
get_random_breach(),
user_id,
ConfirmationStatus::ConfirmedIn(100),
)
.await;

// Try to add it via the http API
assert_eq!(
Expand Down
106 changes: 81 additions & 25 deletions teos/src/api/internal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,8 @@ impl PrivateTowerServices for Arc<InternalAPI> {

let user_ids = self
.watcher
.get_user_ids().await
.get_user_ids()
.await
.iter()
.map(|x| x.to_vec())
.collect();
Expand Down Expand Up @@ -476,13 +477,18 @@ mod tests_private_api {

// Add data to the Watcher so we can retrieve it later on
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

let appointment = generate_dummy_appointment(None).inner;
let user_signature = cryptography::sign(&appointment.to_vec(), &user_sk).unwrap();
internal_api
.watcher
.add_appointment(appointment.clone(), user_signature)
.await
.unwrap();

let response = internal_api
Expand All @@ -503,7 +509,7 @@ mod tests_private_api {
let (internal_api, _s) = create_api().await;

// Add data to the Responser so we can retrieve it later on
internal_api.watcher.add_random_tracker_to_responder();
internal_api.watcher.add_random_tracker_to_responder().await;

let response = internal_api
.get_all_appointments(Request::new(()))
Expand Down Expand Up @@ -546,12 +552,17 @@ mod tests_private_api {
// Add that many appointments to the watcher.
for _ in 0..appointments_to_create {
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();
let appointment = generate_dummy_appointment(Some(&dispute_txid)).inner;
let signature = cryptography::sign(&appointment.to_vec(), &user_sk).unwrap();
internal_api
.watcher
.add_appointment(appointment, signature)
.await
.unwrap();
}

Expand Down Expand Up @@ -603,7 +614,8 @@ mod tests_private_api {
);
internal_api
.watcher
.add_dummy_tracker_to_responder(&tracker);
.add_dummy_tracker_to_responder(&tracker)
.await;
}

let locator = Locator::new(dispute_tx.txid());
Expand Down Expand Up @@ -656,7 +668,7 @@ mod tests_private_api {
// Register a user
let (user_sk, user_pk) = get_random_keypair();
let user_id = UserId(user_pk);
internal_api.watcher.register(user_id).unwrap();
internal_api.watcher.register(user_id).await.unwrap();

// Add data to the Watcher
for _ in 0..2 {
Expand All @@ -665,12 +677,13 @@ mod tests_private_api {
internal_api
.watcher
.add_appointment(appointment.clone(), user_signature)
.await
.unwrap();
}

// And the Responder
for _ in 0..3 {
internal_api.watcher.add_random_tracker_to_responder();
internal_api.watcher.add_random_tracker_to_responder().await;
}

let response = internal_api
Expand All @@ -695,7 +708,7 @@ mod tests_private_api {
for _ in 0..2 {
let (_, user_pk) = get_random_keypair();
let user_id = UserId(user_pk);
internal_api.watcher.register(user_id).unwrap();
internal_api.watcher.register(user_id).await.unwrap();
users.insert(user_id.to_vec());
}

Expand Down Expand Up @@ -728,7 +741,7 @@ mod tests_private_api {
// Register a user and get it back
let (user_sk, user_pk) = get_random_keypair();
let user_id = UserId(user_pk);
internal_api.watcher.register(user_id).unwrap();
internal_api.watcher.register(user_id).await.unwrap();

let response = internal_api
.get_user(Request::new(msgs::GetUserRequest {
Expand All @@ -748,6 +761,7 @@ mod tests_private_api {
internal_api
.watcher
.add_appointment(appointment.inner, user_signature)
.await
.unwrap();

let response = internal_api
Expand Down Expand Up @@ -911,7 +925,11 @@ mod tests_public_api {

// User must be registered
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

let appointment = generate_dummy_appointment(None).inner;
let user_signature = cryptography::sign(&appointment.to_vec(), &user_sk).unwrap();
Expand Down Expand Up @@ -965,7 +983,11 @@ mod tests_public_api {

// User is registered but has no slots
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

let appointment = generate_dummy_appointment(None).inner;
let user_signature = cryptography::sign(&appointment.to_vec(), &user_sk).unwrap();
Expand Down Expand Up @@ -994,7 +1016,11 @@ mod tests_public_api {

// User is registered but subscription is expired
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

let appointment = generate_dummy_appointment(None).inner;
let user_signature = cryptography::sign(&appointment.to_vec(), &user_sk).unwrap();
Expand All @@ -1020,7 +1046,7 @@ mod tests_public_api {

let (user_sk, user_pk) = get_random_keypair();
let user_id = UserId(user_pk);
internal_api.watcher.register(user_id).unwrap();
internal_api.watcher.register(user_id).await.unwrap();

// Add a tracker to the responder to simulate it being triggered.
let appointment = generate_dummy_appointment(None).inner;
Expand All @@ -1029,13 +1055,18 @@ mod tests_public_api {
internal_api
.watcher
.add_appointment(appointment.clone(), user_signature.clone())
.await
.unwrap();
internal_api.watcher.get_responder().add_tracker(
uuid,
get_random_breach(),
user_id,
ConfirmationStatus::ConfirmedIn(100),
);
internal_api
.watcher
.get_responder()
.add_tracker(
uuid,
get_random_breach(),
user_id,
ConfirmationStatus::ConfirmedIn(100),
)
.await;

// Try to add it again using the API.
match internal_api
Expand Down Expand Up @@ -1085,14 +1116,19 @@ mod tests_public_api {

// The user must be registered
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

// Add the appointment
let appointment = generate_dummy_appointment(None).inner;
let user_signature = cryptography::sign(&appointment.to_vec(), &user_sk).unwrap();
internal_api
.watcher
.add_appointment(appointment.clone(), user_signature)
.await
.unwrap();

// Get the appointment through the API
Expand All @@ -1118,7 +1154,11 @@ mod tests_public_api {

// Add a first user to link the appointment to him
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

// There's no need to add the appointment given the subscription status is checked first
let appointment = generate_dummy_appointment(None).inner;
Expand Down Expand Up @@ -1146,7 +1186,11 @@ mod tests_public_api {

// The user is registered but the appointment does not exist
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

// Try to get the appointment through the API
let appointment = generate_dummy_appointment(None).inner;
Expand All @@ -1173,7 +1217,11 @@ mod tests_public_api {

// Register the user
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

// There s no need to add the appointment given the subscription status is checked first.
let appointment = generate_dummy_appointment(None).inner;
Expand Down Expand Up @@ -1224,7 +1272,11 @@ mod tests_public_api {

// The user must be registered
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

// Get the subscription info though the API
let message = "get subscription info".to_string();
Expand Down Expand Up @@ -1271,7 +1323,11 @@ mod tests_public_api {

// The user is registered but the subscription has expired
let (user_sk, user_pk) = get_random_keypair();
internal_api.watcher.register(UserId(user_pk)).unwrap();
internal_api
.watcher
.register(UserId(user_pk))
.await
.unwrap();

// Try to get the subscription info though the API
let message = "get subscription info".to_string();
Expand Down
Loading

0 comments on commit 0981254

Please sign in to comment.