mirror of
				https://github.com/HabitRPG/habitica.git
				synced 2025-10-28 03:32:29 +01:00 
			
		
		
		
	* feat(chat): server setting to disallow chat from new accounts * fix(tests): many adjustments to handle chat minimum age * fix(tests): address issues outside of chat posting * chore(analytics): add incident logging * fix(config): allow instant chat for dev purposes * fix(test): finely age one more user * fix(test): member not leader Co-authored-by: SabreCat <sabe@habitica.com>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import {
 | |
|   createAndPopulateGroup,
 | |
| } from '../../../../helpers/api-integration/v3';
 | |
| 
 | |
| describe('Prevent multiple notifications', () => {
 | |
|   let partyLeader; let partyMembers; let
 | |
|     party;
 | |
| 
 | |
|   before(async () => {
 | |
|     const { group, groupLeader, members } = await createAndPopulateGroup({
 | |
|       groupDetails: {
 | |
|         type: 'party',
 | |
|         privacy: 'private',
 | |
|       },
 | |
|       members: 4,
 | |
|     });
 | |
| 
 | |
|     party = group;
 | |
|     partyLeader = groupLeader;
 | |
|     partyMembers = members;
 | |
|   });
 | |
| 
 | |
|   it('does not add the same notification twice', async () => {
 | |
|     const multipleChatMessages = [];
 | |
| 
 | |
|     for (let i = 0; i < 4; i += 1) {
 | |
|       for (let memberIndex = 0; memberIndex < partyMembers.length; memberIndex += 1) {
 | |
|         await partyMembers[memberIndex].update({ 'auth.timestamps.created': new Date('2022-01-01') }); // eslint-disable-line no-await-in-loop
 | |
|         multipleChatMessages.push(
 | |
|           partyMembers[memberIndex].post(`/groups/${party._id}/chat`, { message: `Message ${i}_${memberIndex}` }),
 | |
|         );
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     await Promise.all(multipleChatMessages);
 | |
| 
 | |
|     const userWithNotification = await partyLeader.get('/user');
 | |
| 
 | |
|     expect(userWithNotification.notifications.length).to.be.eq(1);
 | |
|   });
 | |
| });
 |