Skip to content

Commit

Permalink
feat(mailbox): get_mailbox returns in FIFO order [NET-508] (#153)
Browse files Browse the repository at this point in the history
  • Loading branch information
justprosh authored Jul 21, 2023
1 parent f79fa96 commit 715981f
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 10 deletions.
3 changes: 1 addition & 2 deletions src/spell/modules/spell/spell/src/log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,6 @@ mod tests {
let store = spell.store_log_cp(log1.clone(), cp.clone());
assert!(store.success, "{}", store.error);

std::thread::sleep(std::time::Duration::from_secs(1));
let store = spell.store_log_cp(log2.clone(), cp.clone());
assert!(store.success, "{}", store.error);

Expand All @@ -139,7 +138,7 @@ mod tests {
assert_eq!(logs.len(), 2);
assert_eq!(logs[0].message, log1);
assert_eq!(logs[1].message, log2);
assert!(logs[0].timestamp < logs[1].timestamp);
assert!(logs[0].timestamp <= logs[1].timestamp);
}

#[marine_test(
Expand Down
13 changes: 5 additions & 8 deletions src/spell/modules/spell/spell/src/mailbox.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,11 @@ pub fn push_mailbox(message: String) -> UnitValue {
}

#[marine]
/// Get all messages from the mailbox ordered by timestamp ascending.
/// Get all messages from the mailbox in FIFO order.
pub fn get_mailbox() -> GetMailboxResult {
let result: eyre::Result<Vec<String>> = try {
let conn = db();
let statement =
conn.prepare(r#"SELECT message FROM mailbox ORDER BY timestamp ASC, id ASC"#)?;
let statement = conn.prepare(r#"SELECT message FROM mailbox ORDER BY id DESC"#)?;
let messages: Vec<String> = fetch_rows(statement, |statement| {
Ok(Some(statement.read::<String>(0)?))
});
Expand All @@ -82,9 +81,7 @@ pub fn pop_mailbox() -> StringValue {

let db = db();
let result: eyre::Result<Option<String>> = try {
let mut get = db.prepare(
r#" SELECT message, id FROM mailbox ORDER BY timestamp DESC, id DESC LIMIT 1"#,
)?;
let mut get = db.prepare(r#" SELECT message, id FROM mailbox ORDER BY id DESC LIMIT 1"#)?;
let string = read_string(&mut get, 0)?;
let id = get.read::<i64>(1)?;

Expand Down Expand Up @@ -152,8 +149,8 @@ mod tests {
assert!(messages.success, "{}", messages.error);
let messages = messages.messages;
assert_eq!(messages.len(), 2);
assert_eq!(messages[0], message1);
assert_eq!(messages[1], message2);
assert_eq!(messages[0], message2);
assert_eq!(messages[1], message1);
}

#[marine_test(
Expand Down

0 comments on commit 715981f

Please sign in to comment.