Skip to content

Commit

Permalink
Merge pull request #1083 from aliraza556/feat/add-title-field-to-acti…
Browse files Browse the repository at this point in the history
…vities

Add Title Field Support to Activities - Frontend Implementation with Unit Test
  • Loading branch information
humansinstitute authored Feb 13, 2025
2 parents 9972780 + 5e08024 commit f2be67d
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
75 changes: 75 additions & 0 deletions src/store/__test__/activityStore.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,50 @@ describe('ActivityStore', () => {
expect(result).toBeNull();
expect(activityStore.error).toBe('Creation failed');
});

it('should create activity with title', async () => {
const newActivity: INewActivity = {
workspace: 'test',
content: 'New activity',
contentType: 'feature_creation',
featureUUID: 'feature1',
phaseUUID: 'phase1',
author: 'human',
authorRef: 'user1',
title: 'Test Title'
};

const mockResponseActivity = {
...mockActivity,
title: 'Test Title'
};

(mainStore.createActivity as jest.Mock).mockResolvedValue(mockResponseActivity);

const result = await activityStore.createActivity(newActivity);

expect(result).toEqual(mockResponseActivity);
expect(activityStore.activities.get('1')?.title).toBe('Test Title');
});

it('should create activity without title', async () => {
const newActivity: INewActivity = {
workspace: 'test',
content: 'New activity',
contentType: 'feature_creation',
featureUUID: 'feature1',
phaseUUID: 'phase1',
author: 'human',
authorRef: 'user1'
};

(mainStore.createActivity as jest.Mock).mockResolvedValue(mockActivity);

const result = await activityStore.createActivity(newActivity);

expect(result).toEqual(mockActivity);
expect(activityStore.activities.get('1')?.title).toBeUndefined();
});
});

describe('createThreadResponse', () => {
Expand Down Expand Up @@ -145,6 +189,37 @@ describe('ActivityStore', () => {
expect(result).toBe(false);
expect(activityStore.error).toBe('Update failed');
});

it('should update activity title', async () => {
activityStore.activities.set('1', mockActivity);
const updates = { title: 'Updated Title' };

(mainStore.updateActivity as jest.Mock).mockResolvedValue(true);

const result = await activityStore.updateActivity('1', updates);

expect(result).toBe(true);
expect(activityStore.activities.get('1')?.title).toBe('Updated Title');
});

it('should update activity without title', async () => {
const activityWithTitle = { ...mockActivity, title: 'Initial Title' };
activityStore.activities.set('1', activityWithTitle);

const updates = { content: 'Updated content' };

(mainStore.updateActivity as jest.Mock).mockResolvedValue(true);

const result = await activityStore.updateActivity('1', updates);

expect(result).toBe(true);
expect(activityStore.activities.get('1')).toEqual({
...activityWithTitle,
content: 'Updated content'
});

expect(activityStore.activities.get('1')?.title).toBe('Initial Title');
});
});

describe('deleteActivity', () => {
Expand Down
2 changes: 2 additions & 0 deletions src/store/interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,7 @@ export interface IActivity {
sequence: number;
contentType: ContentType;
content: string;
title?: string;
workspace: string;
featureUUID: string;
phaseUUID: string;
Expand All @@ -638,4 +639,5 @@ export interface INewActivity {
author: AuthorType;
authorRef: string;
threadId?: string;
title?: string;
}

0 comments on commit f2be67d

Please sign in to comment.