|
|
|
@ -65,22 +65,30 @@ describe('GroupSyncService', () => {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should filter groups by community ID', async () => {
|
|
|
|
|
// Reset last sync attempt to force a sync
|
|
|
|
|
GroupSyncService['lastSyncAttempt'] = 0;
|
|
|
|
|
|
|
|
|
|
const result = await GroupSyncService.syncGroups();
|
|
|
|
|
|
|
|
|
|
// Verify the correct groups were processed
|
|
|
|
|
expect(result).toEqual({
|
|
|
|
|
added: 1,
|
|
|
|
|
updated: 0
|
|
|
|
|
added: 1, // group1 should be added
|
|
|
|
|
updated: 0 // no existing groups to update
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Verify database state
|
|
|
|
|
const groups = db.query('SELECT * FROM groups').all();
|
|
|
|
|
expect(groups).toEqual([
|
|
|
|
|
{
|
|
|
|
|
id: 'group1',
|
|
|
|
|
community_id: 'test-community',
|
|
|
|
|
name: 'Group 1',
|
|
|
|
|
active: 1,
|
|
|
|
|
last_verified: expect.any(String)
|
|
|
|
|
}
|
|
|
|
|
]);
|
|
|
|
|
expect(groups).toHaveLength(1);
|
|
|
|
|
|
|
|
|
|
const group = groups[0];
|
|
|
|
|
expect(group.id).toBe('group1');
|
|
|
|
|
expect(group.community_id).toBe('test-community');
|
|
|
|
|
expect(group.name).toBe('Group 1');
|
|
|
|
|
expect(group.active).toBe(1);
|
|
|
|
|
expect(group.last_verified).toBeTruthy();
|
|
|
|
|
|
|
|
|
|
// Verify only the matching group was processed
|
|
|
|
|
expect(fetchMock).toHaveBeenCalledTimes(1);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should update existing groups', async () => {
|
|
|
|
|