Fix issue with l4p not resetting properly (#15240)

* actually clear out seeking field on user. Even when creating a party

* Add tests to ensure party.seeking is cleared

* fix(lint): don't assign unused const

---------

Co-authored-by: Sabe Jones <sabe@habitica.com>
This commit is contained in:
Phillip Thelen
2024-06-11 00:00:31 +02:00
committed by GitHub
parent 37f08c4534
commit 758b6138c2
3 changed files with 23 additions and 1 deletions

View File

@@ -145,6 +145,18 @@ describe('POST /group', () => {
expect(updatedUser.party._id).to.eql(party._id); expect(updatedUser.party._id).to.eql(party._id);
}); });
it('removes seeking from user', async () => {
await user.updateOne({ 'party.seeking': new Date() });
await user.post('/groups', {
name: partyName,
type: partyType,
});
const updatedUser = await user.get('/user');
expect(updatedUser.party.seeking).to.not.exist;
});
it('does not award Party Up achievement to solo partier', async () => { it('does not award Party Up achievement to solo partier', async () => {
await user.post('/groups', { await user.post('/groups', {
name: partyName, name: partyName,

View File

@@ -178,6 +178,15 @@ describe('POST /group/:groupId/join', () => {
await expect(invitedUser.get('/user')).to.eventually.not.have.nested.property('invitations.parties[0].id'); await expect(invitedUser.get('/user')).to.eventually.not.have.nested.property('invitations.parties[0].id');
}); });
it('clears party.seeking from user when joining party', async () => {
await invitedUser.updateOne({ 'party.seeking': new Date() });
await invitedUser.post(`/groups/${party._id}/join`);
const updatedUser = await invitedUser.get('/user');
await expect(updatedUser.party.seeking).to.not.exist;
});
it('increments memberCount when joining party', async () => { it('increments memberCount when joining party', async () => {
const oldMemberCount = party.memberCount; const oldMemberCount = party.memberCount;

View File

@@ -136,6 +136,7 @@ api.createGroup = {
if (user.party._id) throw new NotAuthorized(res.t('messageGroupAlreadyInParty')); if (user.party._id) throw new NotAuthorized(res.t('messageGroupAlreadyInParty'));
user.party._id = group._id; user.party._id = group._id;
user.party.seeking = undefined;
} }
let savedGroup; let savedGroup;
@@ -590,7 +591,7 @@ api.joinGroup = {
// Clear all invitations of new user and reset looking for party state // Clear all invitations of new user and reset looking for party state
user.invitations.parties = []; user.invitations.parties = [];
user.invitations.party = {}; user.invitations.party = {};
user.party.seeking = null; user.party.seeking = undefined;
// invite new user to pending quest // invite new user to pending quest
if (group.quest.key && !group.quest.active) { if (group.quest.key && !group.quest.active) {