mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-15 08:54:01 +00:00
375d9a2a3c
* persistent activity queue * fixes * fixes * make federation workers function callable from outside * log federation instances * dead instance detection not needed here * taplo fmt * split federate bin/lib * minor fix * better logging * log * create struct to hold cancellable task for readability * use boxfuture for readability * reset submodule * fix * fix lint * swap * remove json column, use separate array columns instead * some review comments * make worker a struct for readability * minor readability * add local filter to community follower view * remove separate lemmy_federate entry point * fix remaining duration * address review comments mostly * fix lint * upgrade actitypub-fed to simpler interface * fix sql format * increase delays a bit * fixes after merge * remove selectable * fix instance selectable * add comment * start federation based on latest id at the time * rename federate process args * dead instances in one query * filter follow+report activities by local * remove synchronous federation remove activity sender queue * lint * fix federation tests by waiting for results to change * fix fed test * fix comment report * wait some more * Apply suggestions from code review Co-authored-by: SorteKanin <sortekanin@gmail.com> * fix most remaining tests * wait until private messages * fix community tests * fix community tests * move arg parse * use instance_id instead of domain in federation_queue_state table --------- Co-authored-by: Dessalines <dessalines@users.noreply.github.com> Co-authored-by: SorteKanin <sortekanin@gmail.com>
111 lines
3.2 KiB
TypeScript
111 lines
3.2 KiB
TypeScript
jest.setTimeout(120000);
|
|
import {
|
|
alpha,
|
|
beta,
|
|
setupLogins,
|
|
followBeta,
|
|
createPrivateMessage,
|
|
editPrivateMessage,
|
|
listPrivateMessages,
|
|
deletePrivateMessage,
|
|
unfollowRemotes,
|
|
waitUntil,
|
|
} from "./shared";
|
|
|
|
let recipient_id: number;
|
|
|
|
beforeAll(async () => {
|
|
await setupLogins();
|
|
await followBeta(alpha);
|
|
recipient_id = 3;
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await unfollowRemotes(alpha);
|
|
});
|
|
|
|
test("Create a private message", async () => {
|
|
let pmRes = await createPrivateMessage(alpha, recipient_id);
|
|
expect(pmRes.private_message_view.private_message.content).toBeDefined();
|
|
expect(pmRes.private_message_view.private_message.local).toBe(true);
|
|
expect(pmRes.private_message_view.creator.local).toBe(true);
|
|
expect(pmRes.private_message_view.recipient.local).toBe(false);
|
|
|
|
let betaPms = await waitUntil(
|
|
() => listPrivateMessages(beta),
|
|
e => !!e.private_messages[0],
|
|
);
|
|
expect(betaPms.private_messages[0].private_message.content).toBeDefined();
|
|
expect(betaPms.private_messages[0].private_message.local).toBe(false);
|
|
expect(betaPms.private_messages[0].creator.local).toBe(false);
|
|
expect(betaPms.private_messages[0].recipient.local).toBe(true);
|
|
});
|
|
|
|
test("Update a private message", async () => {
|
|
let updatedContent = "A jest test federated private message edited";
|
|
|
|
let pmRes = await createPrivateMessage(alpha, recipient_id);
|
|
let pmUpdated = await editPrivateMessage(
|
|
alpha,
|
|
pmRes.private_message_view.private_message.id,
|
|
);
|
|
expect(pmUpdated.private_message_view.private_message.content).toBe(
|
|
updatedContent,
|
|
);
|
|
|
|
let betaPms = await waitUntil(
|
|
() => listPrivateMessages(beta),
|
|
p => p.private_messages[0].private_message.content === updatedContent,
|
|
);
|
|
expect(betaPms.private_messages[0].private_message.content).toBe(
|
|
updatedContent,
|
|
);
|
|
});
|
|
|
|
test("Delete a private message", async () => {
|
|
let pmRes = await createPrivateMessage(alpha, recipient_id);
|
|
let betaPms1 = await waitUntil(
|
|
() => listPrivateMessages(beta),
|
|
m =>
|
|
!!m.private_messages.find(
|
|
e =>
|
|
e.private_message.ap_id ===
|
|
pmRes.private_message_view.private_message.ap_id,
|
|
),
|
|
);
|
|
let deletedPmRes = await deletePrivateMessage(
|
|
alpha,
|
|
true,
|
|
pmRes.private_message_view.private_message.id,
|
|
);
|
|
expect(deletedPmRes.private_message_view.private_message.deleted).toBe(true);
|
|
|
|
// The GetPrivateMessages filters out deleted,
|
|
// even though they are in the actual database.
|
|
// no reason to show them
|
|
let betaPms2 = await waitUntil(
|
|
() => listPrivateMessages(beta),
|
|
p => p.private_messages.length === betaPms1.private_messages.length - 1,
|
|
);
|
|
expect(betaPms2.private_messages.length).toBe(
|
|
betaPms1.private_messages.length - 1,
|
|
);
|
|
|
|
// Undelete
|
|
let undeletedPmRes = await deletePrivateMessage(
|
|
alpha,
|
|
false,
|
|
pmRes.private_message_view.private_message.id,
|
|
);
|
|
expect(undeletedPmRes.private_message_view.private_message.deleted).toBe(
|
|
false,
|
|
);
|
|
|
|
let betaPms3 = await waitUntil(
|
|
() => listPrivateMessages(beta),
|
|
p => p.private_messages.length === betaPms1.private_messages.length,
|
|
);
|
|
expect(betaPms3.private_messages.length).toBe(
|
|
betaPms1.private_messages.length,
|
|
);
|
|
});
|