mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 13:05:32 +09:00
fix(api): stop treating accounts pending deletion as already deleted (#1816)
This commit is contained in:
1 parent
ffaf5119d8
commit
32afbf12d6
2 files changed
+23
No files matched your search
@@ -808,6 +808,9 @@ export class UserRelationshipService {
|
|||||||
if (!user) {
|
if (!user) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (user.pendingDeletionAt !== null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return (user.flags & UserFlags.DELETED) === UserFlags.DELETED;
|
return (user.flags & UserFlags.DELETED) === UserFlags.DELETED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19,6 +19,16 @@ import {
|
|||||||
} from './RelationshipTestUtils';
|
} from './RelationshipTestUtils';
|
||||||
import {fetchUserMe} from './UserTestUtils';
|
import {fetchUserMe} from './UserTestUtils';
|
||||||
|
|
||||||
|
async function markUserScheduledForDeletion(harness: ApiTestHarness, userId: string): Promise<void> {
|
||||||
|
const pendingDeletionAt = new Date(Date.now() + 14 * 24 * 60 * 60 * 1000).toISOString();
|
||||||
|
await createBuilder(harness, '')
|
||||||
|
.post(`/test/users/${userId}/set-pending-deletion`)
|
||||||
|
.body({pending_deletion_at: pendingDeletionAt, set_self_deleted_flag: false})
|
||||||
|
.expect(HTTP_STATUS.OK)
|
||||||
|
.execute();
|
||||||
|
await markUserDeleted(harness, userId);
|
||||||
|
}
|
||||||
|
|
||||||
async function markUserDeleted(harness: ApiTestHarness, userId: string): Promise<void> {
|
async function markUserDeleted(harness: ApiTestHarness, userId: string): Promise<void> {
|
||||||
await createBuilder(harness, '')
|
await createBuilder(harness, '')
|
||||||
.patch(`/test/users/${userId}/flags`)
|
.patch(`/test/users/${userId}/flags`)
|
||||||
@@ -221,6 +231,16 @@ describe('UserRelationshipStateTransitions', () => {
|
|||||||
.expect(HTTP_STATUS.BAD_REQUEST, 'FRIEND_REQUEST_BLOCKED')
|
.expect(HTTP_STATUS.BAD_REQUEST, 'FRIEND_REQUEST_BLOCKED')
|
||||||
.execute();
|
.execute();
|
||||||
});
|
});
|
||||||
|
test('can accept a friend request from a user scheduled for deletion', async () => {
|
||||||
|
const alice = await createTestAccount(harness);
|
||||||
|
const bob = await createTestAccount(harness);
|
||||||
|
await sendFriendRequest(harness, bob.token, alice.userId);
|
||||||
|
await markUserScheduledForDeletion(harness, bob.userId);
|
||||||
|
const {json: friendship} = await acceptFriendRequest(harness, alice.token, bob.userId);
|
||||||
|
assertRelationshipType(friendship, RelationshipTypes.FRIEND);
|
||||||
|
const {json: aliceAfter} = await listRelationships(harness, alice.token);
|
||||||
|
assertRelationshipType(findRelationship(aliceAfter, bob.userId)!, RelationshipTypes.FRIEND);
|
||||||
|
});
|
||||||
test('cannot send friend request to user who blocked you', async () => {
|
test('cannot send friend request to user who blocked you', async () => {
|
||||||
const alice = await createTestAccount(harness);
|
const alice = await createTestAccount(harness);
|
||||||
const bob = await createTestAccount(harness);
|
const bob = await createTestAccount(harness);
|
||||||
|
|||||||
Reference in new issue
Block a user