Fix tests and linter
This commit is contained in:
@ -1,38 +0,0 @@
|
|||||||
import { act, renderHook } from '@testing-library/react';
|
|
||||||
|
|
||||||
import { useEmailThread } from '../useEmailThread';
|
|
||||||
|
|
||||||
const mockSetViewableEmailThreadId = jest.fn();
|
|
||||||
const mockUseOpenEmailThreadRightDrawer = jest.fn();
|
|
||||||
|
|
||||||
jest.mock('recoil', () => ({
|
|
||||||
useSetRecoilState: () => mockSetViewableEmailThreadId,
|
|
||||||
}));
|
|
||||||
|
|
||||||
jest.mock(
|
|
||||||
'@/activities/emails/right-drawer/hooks/useOpenEmailThreadRightDrawer',
|
|
||||||
() => ({
|
|
||||||
useOpenEmailThreadRightDrawer: () => mockUseOpenEmailThreadRightDrawer,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
jest.mock('@/activities/emails/state/viewableEmailThreadIdState', () => ({
|
|
||||||
viewableEmailThreadIdState: () => 'mockViewableEmailThreadIdState',
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('useEmailThread hook', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.clearAllMocks();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('openEmailThread function', () => {
|
|
||||||
const { result } = renderHook(() => useEmailThread());
|
|
||||||
|
|
||||||
act(() => {
|
|
||||||
result.current.openEmailThread('mockThreadId');
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(mockSetViewableEmailThreadId).toHaveBeenCalledWith('mockThreadId');
|
|
||||||
expect(mockUseOpenEmailThreadRightDrawer).toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
import { renderHook } from '@testing-library/react';
|
|
||||||
import { RecoilRoot } from 'recoil';
|
|
||||||
|
|
||||||
import { useActivityById } from '../useActivityById';
|
|
||||||
|
|
||||||
jest.mock('@/object-record/hooks/useFindOneRecord', () => ({
|
|
||||||
useFindOneRecord: jest.fn(() => ({
|
|
||||||
record: {
|
|
||||||
activity: {
|
|
||||||
id: 'test-activity-id',
|
|
||||||
name: 'Test Activity',
|
|
||||||
description: 'This is a test activity',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
loading: false,
|
|
||||||
})),
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('useActivityById', () => {
|
|
||||||
it('fetches activity by id and returns the activity and loading state', async () => {
|
|
||||||
const activityId = 'test-activity-id';
|
|
||||||
const { result } = renderHook(() => useActivityById({ activityId }), {
|
|
||||||
wrapper: RecoilRoot,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(result.current.loading).toBe(false);
|
|
||||||
|
|
||||||
expect(result.current.activity).toEqual({
|
|
||||||
activity: {
|
|
||||||
id: 'test-activity-id',
|
|
||||||
name: 'Test Activity',
|
|
||||||
description: 'This is a test activity',
|
|
||||||
},
|
|
||||||
activityTargets: [],
|
|
||||||
comments: [],
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
import { renderHook } from '@testing-library/react';
|
|
||||||
|
|
||||||
import { useCompleteTask } from '@/activities/tasks/hooks/useCompleteTask';
|
|
||||||
|
|
||||||
const mockUpdateOneRecord = jest.fn();
|
|
||||||
jest.mock('@/object-record/hooks/useUpdateOneRecord', () => ({
|
|
||||||
useUpdateOneRecord: () => ({
|
|
||||||
updateOneRecord: mockUpdateOneRecord,
|
|
||||||
}),
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('useCompleteTask', () => {
|
|
||||||
it('should complete the task when called with true', async () => {
|
|
||||||
const taskId = 'test-task-id';
|
|
||||||
const { result } = renderHook(() =>
|
|
||||||
useCompleteTask({ id: taskId, completedAt: null }),
|
|
||||||
);
|
|
||||||
|
|
||||||
const { completeTask } = result.current;
|
|
||||||
completeTask(true);
|
|
||||||
|
|
||||||
expect(mockUpdateOneRecord).toHaveBeenCalledWith({
|
|
||||||
idToUpdate: taskId,
|
|
||||||
updateOneRecordInput: {
|
|
||||||
completedAt: expect.any(String),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should uncomplete the task when called with false', async () => {
|
|
||||||
const taskId = 'test-task-id';
|
|
||||||
const { result } = renderHook(() =>
|
|
||||||
useCompleteTask({ id: taskId, completedAt: '2021-01-01T00:00:00' }),
|
|
||||||
);
|
|
||||||
|
|
||||||
const { completeTask } = result.current;
|
|
||||||
|
|
||||||
completeTask(false);
|
|
||||||
|
|
||||||
expect(mockUpdateOneRecord).toHaveBeenCalledWith({
|
|
||||||
idToUpdate: taskId,
|
|
||||||
updateOneRecordInput: {
|
|
||||||
completedAt: null,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
import { renderHook } from '@testing-library/react';
|
|
||||||
|
|
||||||
import { useInjectIntoActivitiesQueries } from '@/activities/hooks/useInjectIntoActivitiesQueries';
|
|
||||||
import { useInjectIntoTimelineActivitiesQueries } from '@/activities/timeline/hooks/useInjectIntoTimelineActivitiesQueries';
|
|
||||||
import { Activity } from '@/activities/types/Activity';
|
|
||||||
import { ActivityTarget } from '@/activities/types/ActivityTarget';
|
|
||||||
import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity';
|
|
||||||
|
|
||||||
jest.mock('@/activities/hooks/useInjectIntoActivitiesQueries', () => ({
|
|
||||||
useInjectIntoActivitiesQueries: jest.fn(() => ({
|
|
||||||
injectActivitiesQueries: jest.fn(),
|
|
||||||
})),
|
|
||||||
}));
|
|
||||||
|
|
||||||
describe('useInjectIntoTimelineActivitiesQueries', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.clearAllMocks();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should inject activities into timeline activities queries correctly', () => {
|
|
||||||
const mockActivityToInject: Activity = {
|
|
||||||
id: 'activity1',
|
|
||||||
createdAt: '2022-01-01T00:00:00',
|
|
||||||
updatedAt: '2022-01-01T00:00:00',
|
|
||||||
completedAt: '2022-01-01T00:00:00',
|
|
||||||
__typename: 'Activity',
|
|
||||||
reminderAt: '2022-01-01T00:00:00',
|
|
||||||
dueAt: '2022-01-01T00:00:00',
|
|
||||||
type: 'Task',
|
|
||||||
activityTargets: [],
|
|
||||||
title: 'Activity 1',
|
|
||||||
body: 'Activity 1 body',
|
|
||||||
author: {
|
|
||||||
id: 'author1',
|
|
||||||
name: {
|
|
||||||
firstName: 'John',
|
|
||||||
lastName: 'Doe',
|
|
||||||
},
|
|
||||||
avatarUrl: 'https://example.com/avatar1.jpg',
|
|
||||||
},
|
|
||||||
authorId: 'author1',
|
|
||||||
assignee: null,
|
|
||||||
assigneeId: null,
|
|
||||||
comments: [],
|
|
||||||
};
|
|
||||||
const mockActivityTargetsToInject: ActivityTarget[] = [
|
|
||||||
{
|
|
||||||
id: 'target1',
|
|
||||||
updatedAt: '2022-01-01T00:00:00',
|
|
||||||
createdAt: '2022-01-01T00:00:00',
|
|
||||||
activity: {
|
|
||||||
id: 'activity1',
|
|
||||||
createdAt: '2022-01-01T00:00:00',
|
|
||||||
updatedAt: '2022-01-01T00:00:00',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'target2',
|
|
||||||
updatedAt: '2022-01-01T00:00:00',
|
|
||||||
createdAt: '2022-01-01T00:00:00',
|
|
||||||
activity: {
|
|
||||||
id: 'activity1',
|
|
||||||
createdAt: '2022-01-01T00:00:00',
|
|
||||||
updatedAt: '2022-01-01T00:00:00',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
const mockTimelineTargetableObject: ActivityTargetableObject = {
|
|
||||||
id: 'timelineTarget1',
|
|
||||||
targetObjectNameSingular: 'Timeline',
|
|
||||||
};
|
|
||||||
|
|
||||||
const { result } = renderHook(() =>
|
|
||||||
useInjectIntoTimelineActivitiesQueries(),
|
|
||||||
);
|
|
||||||
|
|
||||||
result.current.injectIntoTimelineActivitiesQueries({
|
|
||||||
activityToInject: mockActivityToInject,
|
|
||||||
activityTargetsToInject: mockActivityTargetsToInject,
|
|
||||||
timelineTargetableObject: mockTimelineTargetableObject,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(useInjectIntoActivitiesQueries).toHaveBeenCalledTimes(1);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user