mirror of
https://github.com/chatmail/core.git
synced 2026-05-25 09:46:31 +03:00
fix: Update the channel title after joining if the QR code included a wrong title
This commit is contained in:
@@ -3660,17 +3660,20 @@ pub(crate) async fn create_out_broadcast_ex(
|
|||||||
|row| row.get(0),
|
|row| row.get(0),
|
||||||
)?;
|
)?;
|
||||||
ensure!(cnt == 0, "{cnt} chats exist with grpid {grpid}");
|
ensure!(cnt == 0, "{cnt} chats exist with grpid {grpid}");
|
||||||
|
let mut params: Params = Params::new();
|
||||||
|
params.update_timestamp(Param::GroupNameTimestamp, time())?;
|
||||||
|
|
||||||
t.execute(
|
t.execute(
|
||||||
"INSERT INTO chats
|
"INSERT INTO chats
|
||||||
(type, name, name_normalized, grpid, created_timestamp)
|
(type, name, name_normalized, grpid, created_timestamp, param)
|
||||||
VALUES(?, ?, ?, ?, ?)",
|
VALUES(?, ?, ?, ?, ?, ?)",
|
||||||
(
|
(
|
||||||
Chattype::OutBroadcast,
|
Chattype::OutBroadcast,
|
||||||
&chat_name,
|
&chat_name,
|
||||||
normalize_text(&chat_name),
|
normalize_text(&chat_name),
|
||||||
&grpid,
|
&grpid,
|
||||||
timestamp,
|
timestamp,
|
||||||
|
params.to_string(),
|
||||||
),
|
),
|
||||||
)?;
|
)?;
|
||||||
let chat_id = ChatId::new(t.last_insert_rowid().try_into()?);
|
let chat_id = ChatId::new(t.last_insert_rowid().try_into()?);
|
||||||
|
|||||||
@@ -2922,17 +2922,16 @@ async fn test_broadcast_change_name() -> Result<()> {
|
|||||||
let fiona = &tcm.fiona().await;
|
let fiona = &tcm.fiona().await;
|
||||||
|
|
||||||
let broadcast_id = create_broadcast(alice, "Channel".to_string()).await?;
|
let broadcast_id = create_broadcast(alice, "Channel".to_string()).await?;
|
||||||
let qr = get_securejoin_qr(alice, Some(broadcast_id)).await.unwrap();
|
let mut qr = get_securejoin_qr(alice, Some(broadcast_id)).await.unwrap();
|
||||||
|
// Something goes wrong with the title, e.g. maybe it gets ellipsized
|
||||||
tcm.section("Alice changes the chat name after creating the QR code, but before someone joins");
|
// Note that the title always comes at the end for human readability
|
||||||
set_chat_name(alice, broadcast_id, "Updated name after creating QR code").await?;
|
qr += "+wrong+title";
|
||||||
alice.pop_sent_msg().await;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
tcm.section("Alice invites Bob to her channel");
|
tcm.section("Alice invites Bob to her channel");
|
||||||
let bob_chat_id = tcm.exec_securejoin_qr(bob, alice, &qr).await;
|
let bob_chat_id = tcm.exec_securejoin_qr(bob, alice, &qr).await;
|
||||||
let bob_chat = Chat::load_from_db(bob, bob_chat_id).await?;
|
let bob_chat = Chat::load_from_db(bob, bob_chat_id).await?;
|
||||||
assert_eq!(bob_chat.name, "Updated name after creating QR code");
|
assert_eq!(bob_chat.name, "Channel");
|
||||||
}
|
}
|
||||||
|
|
||||||
tcm.section("Alice invites Fiona to her channel");
|
tcm.section("Alice invites Fiona to her channel");
|
||||||
|
|||||||
Reference in New Issue
Block a user