summaryrefslogtreecommitdiff
path: root/tests/src/jmap
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/jmap')
-rw-r--r--tests/src/jmap/auth_acl.rs7
-rw-r--r--tests/src/jmap/auth_limits.rs7
-rw-r--r--tests/src/jmap/auth_oauth.rs10
-rw-r--r--tests/src/jmap/blob.rs7
-rw-r--r--tests/src/jmap/delivery.rs7
-rw-r--r--tests/src/jmap/email_changes.rs7
-rw-r--r--tests/src/jmap/email_copy.rs7
-rw-r--r--tests/src/jmap/email_get.rs8
-rw-r--r--tests/src/jmap/email_parse.rs10
-rw-r--r--tests/src/jmap/email_query.rs10
-rw-r--r--tests/src/jmap/email_query_changes.rs6
-rw-r--r--tests/src/jmap/email_search_snippet.rs8
-rw-r--r--tests/src/jmap/email_set.rs8
-rw-r--r--tests/src/jmap/email_submission.rs7
-rw-r--r--tests/src/jmap/event_source.rs10
-rw-r--r--tests/src/jmap/mailbox.rs7
-rw-r--r--tests/src/jmap/mod.rs49
-rw-r--r--tests/src/jmap/push_subscription.rs8
-rw-r--r--tests/src/jmap/quota.rs9
-rw-r--r--tests/src/jmap/sieve_script.rs6
-rw-r--r--tests/src/jmap/stress_test.rs13
-rw-r--r--tests/src/jmap/thread_get.rs7
-rw-r--r--tests/src/jmap/thread_merge.rs7
-rw-r--r--tests/src/jmap/vacation_response.rs6
-rw-r--r--tests/src/jmap/websocket.rs8
25 files changed, 108 insertions, 131 deletions
diff --git a/tests/src/jmap/auth_acl.rs b/tests/src/jmap/auth_acl.rs
index e9598beb..1acbc2b6 100644
--- a/tests/src/jmap/auth_acl.rs
+++ b/tests/src/jmap/auth_acl.rs
@@ -45,7 +45,7 @@ use crate::{
directory::sql::{
add_to_group, create_test_group_with_email, create_test_user_with_email, remove_from_group,
},
- jmap::{mailbox::destroy_all_mailboxes, test_account_login},
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes, test_account_login},
};
pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
@@ -777,10 +777,7 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
admin_client.set_default_account_id(&id.to_string());
destroy_all_mailboxes(admin_client).await;
}
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
pub fn assert_forbidden<T: Debug>(result: Result<T, jmap_client::Error>) {
diff --git a/tests/src/jmap/auth_limits.rs b/tests/src/jmap/auth_limits.rs
index 8bede987..0d1ca20f 100644
--- a/tests/src/jmap/auth_limits.rs
+++ b/tests/src/jmap/auth_limits.rs
@@ -33,7 +33,7 @@ use jmap_proto::types::id::Id;
use crate::{
directory::sql::{create_test_user_with_email, link_test_address},
- jmap::mailbox::destroy_all_mailboxes,
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes},
};
pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
@@ -202,8 +202,5 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
// Destroy test accounts
admin_client.set_default_account_id(&account_id);
destroy_all_mailboxes(admin_client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/auth_oauth.rs b/tests/src/jmap/auth_oauth.rs
index 2353bbf0..ea36702d 100644
--- a/tests/src/jmap/auth_oauth.rs
+++ b/tests/src/jmap/auth_oauth.rs
@@ -40,7 +40,10 @@ use reqwest::{header, redirect::Policy};
use serde::de::DeserializeOwned;
use store::ahash::AHashMap;
-use crate::{directory::sql::create_test_user_with_email, jmap::mailbox::destroy_all_mailboxes};
+use crate::{
+ directory::sql::create_test_user_with_email,
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes},
+};
pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
println!("Running OAuth tests...");
@@ -307,10 +310,7 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
// Destroy test accounts
admin_client.set_default_account_id(john_id);
destroy_all_mailboxes(admin_client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
async fn post_bytes(url: &str, params: &AHashMap<String, String>) -> Bytes {
diff --git a/tests/src/jmap/blob.rs b/tests/src/jmap/blob.rs
index d6693893..a40bb937 100644
--- a/tests/src/jmap/blob.rs
+++ b/tests/src/jmap/blob.rs
@@ -30,7 +30,7 @@ use serde_json::Value;
use crate::{
directory::sql::create_test_user_with_email,
- jmap::{jmap_json_request, mailbox::destroy_all_mailboxes},
+ jmap::{assert_is_empty, jmap_json_request, mailbox::destroy_all_mailboxes},
};
pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
@@ -489,8 +489,5 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
// Remove test data
admin_client.set_default_account_id(account_id.to_string());
destroy_all_mailboxes(admin_client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/delivery.rs b/tests/src/jmap/delivery.rs
index 9ec1e8a6..33e0873d 100644
--- a/tests/src/jmap/delivery.rs
+++ b/tests/src/jmap/delivery.rs
@@ -34,7 +34,7 @@ use tokio::{
use crate::{
directory::sql::{create_test_user_with_email, link_test_address, remove_test_alias},
- jmap::mailbox::destroy_all_mailboxes,
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes},
};
pub async fn test(server: Arc<JMAP>, client: &mut Client) {
@@ -248,10 +248,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
client.set_default_account_id(account_id);
destroy_all_mailboxes(client).await;
}
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
pub struct SmtpConnection {
diff --git a/tests/src/jmap/email_changes.rs b/tests/src/jmap/email_changes.rs
index d7947b90..1fd6d943 100644
--- a/tests/src/jmap/email_changes.rs
+++ b/tests/src/jmap/email_changes.rs
@@ -34,6 +34,8 @@ use store::{
write::{log::ChangeLogBuilder, BatchBuilder},
};
+use crate::jmap::assert_is_empty;
+
pub async fn test(server: Arc<JMAP>, client: &mut Client) {
println!("Running Email Changes tests...");
@@ -315,10 +317,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
assert_eq!(created, vec![2, 3, 11, 12]);
assert_eq!(changes.updated(), Vec::<String>::new());
assert_eq!(changes.destroyed(), Vec::<String>::new());
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
#[derive(Debug, Clone, Copy)]
diff --git a/tests/src/jmap/email_copy.rs b/tests/src/jmap/email_copy.rs
index 585a5a8d..6eb3beaa 100644
--- a/tests/src/jmap/email_copy.rs
+++ b/tests/src/jmap/email_copy.rs
@@ -27,7 +27,7 @@ use jmap::JMAP;
use jmap_client::{client::Client, mailbox::Role};
use jmap_proto::types::id::Id;
-use crate::jmap::mailbox::destroy_all_mailboxes;
+use crate::jmap::{assert_is_empty, mailbox::destroy_all_mailboxes};
pub async fn test(server: Arc<JMAP>, client: &mut Client) {
println!("Running Email Copy tests...");
@@ -116,8 +116,5 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
destroy_all_mailboxes(client).await;
client.set_default_account_id(Id::new(2).to_string());
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/email_get.rs b/tests/src/jmap/email_get.rs
index 366c9034..2902f949 100644
--- a/tests/src/jmap/email_get.rs
+++ b/tests/src/jmap/email_get.rs
@@ -31,7 +31,7 @@ use jmap_client::{
use jmap_proto::types::id::Id;
use mail_parser::HeaderName;
-use crate::jmap::{mailbox::destroy_all_mailboxes, replace_blob_ids};
+use crate::jmap::{assert_is_empty, mailbox::destroy_all_mailboxes, replace_blob_ids};
pub async fn test(server: Arc<JMAP>, client: &mut Client) {
println!("Running Email Get tests...");
@@ -177,11 +177,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
}
destroy_all_mailboxes(client).await;
-
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
pub fn all_headers() -> Vec<email::Property> {
diff --git a/tests/src/jmap/email_parse.rs b/tests/src/jmap/email_parse.rs
index aacdaa2e..4d85e15b 100644
--- a/tests/src/jmap/email_parse.rs
+++ b/tests/src/jmap/email_parse.rs
@@ -31,7 +31,9 @@ use jmap_client::{
};
use jmap_proto::types::id::Id;
-use crate::jmap::{email_get::all_headers, mailbox::destroy_all_mailboxes, replace_blob_ids};
+use crate::jmap::{
+ assert_is_empty, email_get::all_headers, mailbox::destroy_all_mailboxes, replace_blob_ids,
+};
pub async fn test(server: Arc<JMAP>, client: &mut Client) {
println!("Running Email Parse tests...");
@@ -243,9 +245,5 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
}
destroy_all_mailboxes(client).await;
-
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/email_query.rs b/tests/src/jmap/email_query.rs
index a993030e..e69e76f5 100644
--- a/tests/src/jmap/email_query.rs
+++ b/tests/src/jmap/email_query.rs
@@ -24,7 +24,7 @@
use std::{collections::hash_map::Entry, sync::Arc, time::Instant};
use crate::{
- jmap::mailbox::destroy_all_mailboxes,
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes, wait_for_index},
store::{deflate_artwork_data, query::FIELDS},
};
use jmap::JMAP;
@@ -94,6 +94,9 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client, insert: bool) {
"thread {} found",
MAX_THREADS
);
+
+ // Wait for indexing to complete
+ wait_for_index(&server).await;
}
println!("Running JMAP Mail query tests...");
@@ -115,10 +118,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client, insert: bool) {
.unwrap();
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
pub async fn query(client: &mut Client) {
diff --git a/tests/src/jmap/email_query_changes.rs b/tests/src/jmap/email_query_changes.rs
index a77acf21..54612a00 100644
--- a/tests/src/jmap/email_query_changes.rs
+++ b/tests/src/jmap/email_query_changes.rs
@@ -37,6 +37,7 @@ use store::{
};
use crate::jmap::{
+ assert_is_empty,
email_changes::{LogAction, ParseState},
mailbox::destroy_all_mailboxes,
};
@@ -287,10 +288,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
}
server.store.write(batch.build_batch()).await.unwrap();
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
#[derive(Debug, Clone)]
diff --git a/tests/src/jmap/email_search_snippet.rs b/tests/src/jmap/email_search_snippet.rs
index 91baacfd..e32e823a 100644
--- a/tests/src/jmap/email_search_snippet.rs
+++ b/tests/src/jmap/email_search_snippet.rs
@@ -23,7 +23,7 @@
use std::{fs, path::PathBuf, sync::Arc};
-use crate::jmap::mailbox::destroy_all_mailboxes;
+use crate::jmap::{assert_is_empty, mailbox::destroy_all_mailboxes, wait_for_index};
use jmap::{mailbox::INBOX_ID, JMAP};
use jmap_client::{client::Client, core::query, email::query::Filter};
use jmap_proto::types::id::Id;
@@ -64,6 +64,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
.take_id();
email_ids.insert(email_name, email_id);
}
+ wait_for_index(&server).await;
// Run tests
for (filter, email_name, snippet_subject, snippet_preview) in [
@@ -179,8 +180,5 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
// Destroy test data
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/email_set.rs b/tests/src/jmap/email_set.rs
index 7cf4a078..fceb47eb 100644
--- a/tests/src/jmap/email_set.rs
+++ b/tests/src/jmap/email_set.rs
@@ -23,7 +23,7 @@
use std::{fs, path::PathBuf, sync::Arc};
-use crate::jmap::mailbox::destroy_all_mailboxes;
+use crate::jmap::{assert_is_empty, mailbox::destroy_all_mailboxes};
use jmap::{mailbox::INBOX_ID, JMAP};
use jmap_client::{
client::Client,
@@ -46,11 +46,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
update(client, &mailbox_id).await;
destroy_all_mailboxes(client).await;
-
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
async fn create(client: &mut Client, mailbox_id: &str) {
diff --git a/tests/src/jmap/email_submission.rs b/tests/src/jmap/email_submission.rs
index d38e8814..8915b1e0 100644
--- a/tests/src/jmap/email_submission.rs
+++ b/tests/src/jmap/email_submission.rs
@@ -46,7 +46,7 @@ use tokio::{
use crate::{
directory::sql::create_test_user_with_email,
- jmap::{email_set::assert_email_properties, mailbox::destroy_all_mailboxes},
+ jmap::{assert_is_empty, email_set::assert_email_properties, mailbox::destroy_all_mailboxes},
};
#[derive(Default, Debug, PartialEq, Eq)]
@@ -471,10 +471,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
client.email_submission_destroy(&id).await.unwrap();
}
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
pub fn spawn_mock_smtp_server() -> (mpsc::Receiver<MockMessage>, Arc<Mutex<MockSMTPSettings>>) {
diff --git a/tests/src/jmap/event_source.rs b/tests/src/jmap/event_source.rs
index 2edbadf5..ace050c7 100644
--- a/tests/src/jmap/event_source.rs
+++ b/tests/src/jmap/event_source.rs
@@ -25,7 +25,10 @@ use std::{sync::Arc, time::Duration};
use crate::{
directory::sql::create_test_user_with_email,
- jmap::{delivery::SmtpConnection, mailbox::destroy_all_mailboxes, test_account_login},
+ jmap::{
+ assert_is_empty, delivery::SmtpConnection, mailbox::destroy_all_mailboxes,
+ test_account_login,
+ },
};
use futures::StreamExt;
use jmap::{mailbox::INBOX_ID, JMAP};
@@ -130,10 +133,7 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
assert_ping(&mut event_rx).await;
destroy_all_mailboxes(admin_client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
async fn assert_state(
diff --git a/tests/src/jmap/mailbox.rs b/tests/src/jmap/mailbox.rs
index c6479a6f..37501bd4 100644
--- a/tests/src/jmap/mailbox.rs
+++ b/tests/src/jmap/mailbox.rs
@@ -37,6 +37,8 @@ use jmap_proto::types::{id::Id, state::State};
use serde::{Deserialize, Serialize};
use store::ahash::AHashMap;
+use crate::jmap::assert_is_empty;
+
pub async fn test(server: Arc<JMAP>, client: &mut Client) {
println!("Running Mailbox tests...");
@@ -606,10 +608,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
destroy_all_mailboxes(client).await;
client.set_default_account_id(Id::from(1u64));
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
async fn create_test_mailboxes(client: &mut Client) -> AHashMap<String, String> {
diff --git a/tests/src/jmap/mod.rs b/tests/src/jmap/mod.rs
index fc695c39..73064c16 100644
--- a/tests/src/jmap/mod.rs
+++ b/tests/src/jmap/mod.rs
@@ -25,7 +25,11 @@ use std::{sync::Arc, time::Duration};
use base64::{engine::general_purpose, Engine};
use directory::config::ConfigDirectory;
-use jmap::{api::JmapSessionManager, services::IPC_CHANNEL_BUFFER, JMAP};
+use jmap::{
+ api::JmapSessionManager,
+ services::{housekeeper::Event, IPC_CHANNEL_BUFFER},
+ JMAP,
+};
use jmap_client::client::{Client, Credentials};
use jmap_proto::types::id::Id;
use reqwest::header;
@@ -222,17 +226,23 @@ refresh-token-renew = "2s"
#[tokio::test]
pub async fn jmap_tests() {
- let coco = 1;
+ /*let level = "warn";
tracing::subscriber::set_global_default(
tracing_subscriber::FmtSubscriber::builder()
- .with_max_level(tracing::Level::WARN)
+ .with_env_filter(
+ tracing_subscriber::EnvFilter::builder()
+ .parse(
+ format!("smtp={level},imap={level},jmap={level},store={level},utils={level},directory={level}"),
+ )
+ .unwrap(),
+ )
.finish(),
)
- .unwrap();
+ .unwrap();*/
let delete = true;
let mut params = init_jmap_tests(delete).await;
- /*email_query::test(params.server.clone(), &mut params.client, delete).await;
+ email_query::test(params.server.clone(), &mut params.client, delete).await;
email_get::test(params.server.clone(), &mut params.client).await;
email_set::test(params.server.clone(), &mut params.client).await;
email_parse::test(params.server.clone(), &mut params.client).await;
@@ -254,7 +264,7 @@ pub async fn jmap_tests() {
email_submission::test(params.server.clone(), &mut params.client).await;
websocket::test(params.server.clone(), &mut params.client).await;
quota::test(params.server.clone(), &mut params.client).await;
- crypto::test(params.server.clone(), &mut params.client).await;*/
+ crypto::test(params.server.clone(), &mut params.client).await;
blob::test(params.server.clone(), &mut params.client).await;
if delete {
@@ -285,6 +295,33 @@ struct JMAPTest {
shutdown_tx: watch::Sender<bool>,
}
+pub async fn wait_for_index(server: &JMAP) {
+ loop {
+ let (tx, rx) = tokio::sync::oneshot::channel();
+ server
+ .housekeeper_tx
+ .send(Event::IndexIsActive(tx))
+ .await
+ .unwrap();
+ if rx.await.unwrap() {
+ tokio::time::sleep(Duration::from_millis(100)).await;
+ } else {
+ break;
+ }
+ }
+}
+
+pub async fn assert_is_empty(server: Arc<JMAP>) {
+ // Wait for pending FTS index tasks
+ wait_for_index(&server).await;
+
+ // Assert is empty
+ server
+ .store
+ .assert_is_empty(server.blob_store.clone())
+ .await;
+}
+
async fn init_jmap_tests(delete_if_exists: bool) -> JMAPTest {
// Load and parse config
let temp_dir = TempDir::new("jmap_tests", delete_if_exists);
diff --git a/tests/src/jmap/push_subscription.rs b/tests/src/jmap/push_subscription.rs
index 3fd6c450..04260786 100644
--- a/tests/src/jmap/push_subscription.rs
+++ b/tests/src/jmap/push_subscription.rs
@@ -53,7 +53,7 @@ use utils::listener::SessionData;
use crate::{
add_test_certs,
directory::sql::create_test_user_with_email,
- jmap::{mailbox::destroy_all_mailboxes, test_account_login},
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes, test_account_login},
};
const SERVER: &str = "
@@ -218,11 +218,7 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
expect_nothing(&mut event_rx).await;
destroy_all_mailboxes(admin_client).await;
-
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
#[derive(Clone)]
diff --git a/tests/src/jmap/quota.rs b/tests/src/jmap/quota.rs
index a70910c6..6de8bd75 100644
--- a/tests/src/jmap/quota.rs
+++ b/tests/src/jmap/quota.rs
@@ -26,8 +26,8 @@ use std::sync::Arc;
use crate::{
directory::sql::{add_to_group, create_test_user_with_email, set_test_quota},
jmap::{
- delivery::SmtpConnection, jmap_raw_request, mailbox::destroy_all_mailboxes,
- test_account_login,
+ assert_is_empty, delivery::SmtpConnection, jmap_raw_request,
+ mailbox::destroy_all_mailboxes, test_account_login,
},
};
use jmap::{blob::upload::DISABLE_UPLOAD_QUOTA, mailbox::INBOX_ID, JMAP};
@@ -320,10 +320,7 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
admin_client.set_default_account_id(account_id.to_string());
destroy_all_mailboxes(admin_client).await;
}
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
fn assert_over_quota<T: std::fmt::Debug>(result: Result<T, jmap_client::Error>) {
diff --git a/tests/src/jmap/sieve_script.rs b/tests/src/jmap/sieve_script.rs
index 1f466a25..faa56943 100644
--- a/tests/src/jmap/sieve_script.rs
+++ b/tests/src/jmap/sieve_script.rs
@@ -40,6 +40,7 @@ use std::{
use crate::{
directory::sql::create_test_user_with_email,
jmap::{
+ assert_is_empty,
delivery::SmtpConnection,
email_submission::{assert_message_delivery, spawn_mock_smtp_server, MockMessage},
mailbox::destroy_all_mailboxes,
@@ -486,10 +487,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
client.sieve_script_destroy(&id).await.unwrap();
}
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
fn get_script(name: &str) -> Vec<u8> {
diff --git a/tests/src/jmap/stress_test.rs b/tests/src/jmap/stress_test.rs
index 0fbbdc01..ac1dffdf 100644
--- a/tests/src/jmap/stress_test.rs
+++ b/tests/src/jmap/stress_test.rs
@@ -34,6 +34,8 @@ use jmap_client::{
use jmap_proto::types::{collection::Collection, id::Id, property::Property};
use store::rand::{self, Rng};
+use super::assert_is_empty;
+
const TEST_USER_ID: u32 = 1;
const NUM_PASSES: usize = 1;
@@ -254,11 +256,7 @@ async fn email_tests(server: Arc<JMAP>, client: Arc<Client>) {
}
destroy_all_mailboxes(&client).await;
-
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server.clone()).await;
}
}
@@ -331,10 +329,7 @@ async fn mailbox_tests(server: Arc<JMAP>, client: Arc<Client>) {
join_all(futures).await;
destroy_all_mailboxes(&client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
async fn create_mailbox(client: &Client, mailbox: &str) -> Vec<String> {
diff --git a/tests/src/jmap/thread_get.rs b/tests/src/jmap/thread_get.rs
index 68a6e202..c5397a05 100644
--- a/tests/src/jmap/thread_get.rs
+++ b/tests/src/jmap/thread_get.rs
@@ -23,7 +23,7 @@
use std::sync::Arc;
-use crate::jmap::mailbox::destroy_all_mailboxes;
+use crate::jmap::{assert_is_empty, mailbox::destroy_all_mailboxes};
use jmap::JMAP;
use jmap_client::{client::Client, mailbox::Role};
use jmap_proto::types::id::Id;
@@ -66,8 +66,5 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
);
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/thread_merge.rs b/tests/src/jmap/thread_merge.rs
index b31b0b27..b867dcc2 100644
--- a/tests/src/jmap/thread_merge.rs
+++ b/tests/src/jmap/thread_merge.rs
@@ -23,7 +23,7 @@
use std::sync::Arc;
-use crate::jmap::mailbox::destroy_all_mailboxes;
+use crate::jmap::{assert_is_empty, mailbox::destroy_all_mailboxes};
use jmap::JMAP;
use jmap_client::{client::Client, email, mailbox::Role};
use jmap_proto::types::id::Id;
@@ -203,10 +203,7 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
}
}
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
fn build_message(message: usize, in_reply_to: Option<usize>, thread_num: usize) -> String {
diff --git a/tests/src/jmap/vacation_response.rs b/tests/src/jmap/vacation_response.rs
index d9801e63..c9947074 100644
--- a/tests/src/jmap/vacation_response.rs
+++ b/tests/src/jmap/vacation_response.rs
@@ -30,6 +30,7 @@ use std::{sync::Arc, time::Instant};
use crate::{
directory::sql::create_test_user_with_email,
jmap::{
+ assert_is_empty,
delivery::SmtpConnection,
email_submission::{
assert_message_delivery, expect_nothing, spawn_mock_smtp_server, MockMessage,
@@ -173,8 +174,5 @@ pub async fn test(server: Arc<JMAP>, client: &mut Client) {
// Remove test data
client.vacation_response_destroy().await.unwrap();
destroy_all_mailboxes(client).await;
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
diff --git a/tests/src/jmap/websocket.rs b/tests/src/jmap/websocket.rs
index e908afcd..599f7f9c 100644
--- a/tests/src/jmap/websocket.rs
+++ b/tests/src/jmap/websocket.rs
@@ -40,7 +40,7 @@ use tokio::sync::mpsc;
use crate::{
directory::sql::create_test_user_with_email,
- jmap::{mailbox::destroy_all_mailboxes, test_account_login},
+ jmap::{assert_is_empty, mailbox::destroy_all_mailboxes, test_account_login},
};
pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
@@ -125,11 +125,7 @@ pub async fn test(server: Arc<JMAP>, admin_client: &mut Client) {
admin_client.set_default_account_id(account_id);
destroy_all_mailboxes(admin_client).await;
-
- server
- .store
- .assert_is_empty(server.blob_store.clone())
- .await;
+ assert_is_empty(server).await;
}
async fn expect_response(