diff options
| author | Jax Young <jaxvanyang@gmail.com> | 2024-08-05 21:22:40 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-05 14:22:40 +0100 |
| commit | 90e7d28173ae281ba8c4e396c98da9b093b3bb42 (patch) | |
| tree | 141d62fa269dd72b9e4633794cb182e11db739bd /crates/atuin-client/src/record | |
| parent | fix(theme): Restore original colours (#2339) (diff) | |
| download | atuin-90e7d28173ae281ba8c4e396c98da9b093b3bb42.zip | |
test: add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite (#2337)
* test: add env ATUIN_TEST_LOCAL_TIMEOUT to control test timeout of SQLite
This make it possible to control the timeout of SQLite operations in
test. And ATUIN_TEST_LOCAL_TIMEOUT defaults to the default local_timeout,
which is actually used in the client. Instead of a small timeout (0.1),
this change makes the test less likely to fail and better imitate the
default behavior.
SQLite operation timeout was first introduced from #1590, including
connection and store timeout. The env ATUIN_TEST_SQLITE_STORE_TIMEOUT
which added by #1703 only specify the store timeout. This commit doesn't
deprecate ATUIN_TEST_SQLITE_STORE_TIMEOUT, but control it by setting its
default to the new env ATUIN_TEST_LOCAL_TIMEOUT.
* test!: replace ATUIN_TEST_SQLITE_STORE_TIMEOUT with ATUIN_TEST_LOCAL_TIMEOUT
This deprecate ATUIN_TEST_SQLITE_STORE_TIMEOUT for simplicity as the new
env ATUIN_TEST_LOCAL_TIMEOUT can control both connection and store
timeout of SQLite in test. Details see 4d88611.
Revert: #1703.
Diffstat (limited to 'crates/atuin-client/src/record')
| -rw-r--r-- | crates/atuin-client/src/record/sqlite_store.rs | 33 | ||||
| -rw-r--r-- | crates/atuin-client/src/record/sync.rs | 17 |
2 files changed, 23 insertions, 27 deletions
diff --git a/crates/atuin-client/src/record/sqlite_store.rs b/crates/atuin-client/src/record/sqlite_store.rs index 63ef42f8..2937dbd7 100644 --- a/crates/atuin-client/src/record/sqlite_store.rs +++ b/crates/atuin-client/src/record/sqlite_store.rs @@ -363,14 +363,6 @@ impl Store for SqliteStore { } #[cfg(test)] -pub(crate) fn test_sqlite_store_timeout() -> f64 { - std::env::var("ATUIN_TEST_SQLITE_STORE_TIMEOUT") - .ok() - .and_then(|x| x.parse().ok()) - .unwrap_or(0.1) -} - -#[cfg(test)] mod tests { use atuin_common::{ record::{DecryptedData, EncryptedData, Host, HostId, Record}, @@ -380,9 +372,10 @@ mod tests { use crate::{ encryption::generate_encoded_key, record::{encryption::PASETO_V4, store::Store}, + settings::test_local_timeout, }; - use super::{test_sqlite_store_timeout, SqliteStore}; + use super::SqliteStore; fn test_record() -> Record<EncryptedData> { Record::builder() @@ -399,7 +392,7 @@ mod tests { #[tokio::test] async fn create_db() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()).await; + let db = SqliteStore::new(":memory:", test_local_timeout()).await; assert!( db.is_ok(), @@ -410,7 +403,7 @@ mod tests { #[tokio::test] async fn push_record() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let record = test_record(); @@ -420,7 +413,7 @@ mod tests { #[tokio::test] async fn get_record() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let record = test_record(); @@ -433,7 +426,7 @@ mod tests { #[tokio::test] async fn last() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let record = test_record(); @@ -453,7 +446,7 @@ mod tests { #[tokio::test] async fn first() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let record = test_record(); @@ -473,7 +466,7 @@ mod tests { #[tokio::test] async fn len() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let record = test_record(); @@ -489,7 +482,7 @@ mod tests { #[tokio::test] async fn len_tag() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let record = test_record(); @@ -505,7 +498,7 @@ mod tests { #[tokio::test] async fn len_different_tags() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); @@ -527,7 +520,7 @@ mod tests { #[tokio::test] async fn append_a_bunch() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); @@ -554,7 +547,7 @@ mod tests { #[tokio::test] async fn append_a_big_bunch() { - let db = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let db = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); @@ -579,7 +572,7 @@ mod tests { #[tokio::test] async fn re_encrypt() { - let store = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let store = SqliteStore::new(":memory:", test_local_timeout()) .await .unwrap(); let (key, _) = generate_encoded_key().unwrap(); diff --git a/crates/atuin-client/src/record/sync.rs b/crates/atuin-client/src/record/sync.rs index c3794b59..e8d0fbf7 100644 --- a/crates/atuin-client/src/record/sync.rs +++ b/crates/atuin-client/src/record/sync.rs @@ -328,11 +328,14 @@ mod tests { use atuin_common::record::{Diff, EncryptedData, HostId, Record}; use pretty_assertions::assert_eq; - use crate::record::{ - encryption::PASETO_V4, - sqlite_store::{test_sqlite_store_timeout, SqliteStore}, - store::Store, - sync::{self, Operation}, + use crate::{ + record::{ + encryption::PASETO_V4, + sqlite_store::SqliteStore, + store::Store, + sync::{self, Operation}, + }, + settings::test_local_timeout, }; fn test_record() -> Record<EncryptedData> { @@ -357,10 +360,10 @@ mod tests { local_records: Vec<Record<EncryptedData>>, remote_records: Vec<Record<EncryptedData>>, ) -> (SqliteStore, Vec<Diff>) { - let local_store = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let local_store = SqliteStore::new(":memory:", test_local_timeout()) .await .expect("failed to open in memory sqlite"); - let remote_store = SqliteStore::new(":memory:", test_sqlite_store_timeout()) + let remote_store = SqliteStore::new(":memory:", test_local_timeout()) .await .expect("failed to open in memory sqlite"); // "remote" |
