Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 18 additions & 26 deletions src/actions/__tests__/weeklySummariesAction.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ describe('Weekly Summaries Action', () => {

it('Should fetch weekly summaries success', () => {


const weeklySummariesData = {
id: 1,
dueDate: "2024-12-29",
summary: "Weekly Summary"
dueDate: '2024-12-29',
summary: 'Weekly Summary',
};

const result = fetchWeeklySummariesSuccess(weeklySummariesData);
Expand All @@ -41,16 +40,14 @@ describe('Weekly Summaries Action', () => {
});

it('Should return action FETCH_WEEKLY_SUMMARIES_ERROR ', () => {

const error = {};
const result = fetchWeeklySummariesError(error);

expect(result).toEqual({
type: actions.FETCH_WEEKLY_SUMMARIES_ERROR,
payload: { error }
});
})

});
});

describe('Weekly Summaries', () => {
Expand All @@ -70,15 +67,16 @@ describe('Weekly Summaries', () => {
weeklySummariesCount: 1,
weeklySummaries: [
{
id: "1",
dueDate: "2024-12-29",
summary: "Weekly Summary"
}
id: '1',
dueDate: '2024-12-29',
summary: 'Weekly Summary',
},
],
mediaUrl: 'http://media.com',
adminLinks: [{ Name: 'Media Folder', Link: 'http://newmedia.com' }]
}
adminLinks: [{ Name: 'Media Folder', Link: 'http://newmedia.com' }], //NOSONAR - using http for test data
};

axios.get.mockResolvedValue({ data: mockData, status: 200 });
axios.get.mockResolvedValue({ data: mockData, status: 200 });

const result = await getWeeklySummaries(1)(dispatch);
Expand All @@ -98,7 +96,6 @@ describe('Weekly Summaries', () => {

expect(dispatch).toHaveBeenCalledWith(getUserProfileActionCreator(mockData));
expect(result).toBe(200);

});

it('Should dispatch an error action when GET request fails', async () => {
Expand Down Expand Up @@ -130,9 +127,9 @@ describe('Weekly Summaries', () => {
weeklySummariesCount: 1,
weeklySummaries: [
{
id: "1",
dueDate: "2025-01-05",
summary: "Weekly Summary Week1"
id: '1',
dueDate: '2025-01-05',
summary: 'Weekly Summary Week1',
},
],
mediaUrl: 'http://media.com'
Expand All @@ -154,7 +151,6 @@ describe('Weekly Summaries', () => {
});

it('Ensure that if the "Media Folder" link already exists, it should be updated correctly.', async () => {

const mockUserProfile = {
firstName: 'User First Name',
lastName: 'User Last Name',
Expand All @@ -167,13 +163,13 @@ describe('Weekly Summaries', () => {
weeklySummariesCount: 1,
weeklySummaries: [
{
id: "1",
dueDate: "2025-01-05",
summary: "Weekly Summary Week1"
id: '1',
dueDate: '2025-01-05',
summary: 'Weekly Summary Week1',
},
],
mediaUrl: 'http://newmedia.com'
}
mediaUrl: 'http://newmedia.com', // NOSONAR - using http for test data
};

axios.get.mockResolvedValue({ data: mockUserProfile });
axios.put.mockResolvedValue({ status: 200 });
Expand All @@ -191,7 +187,6 @@ describe('Weekly Summaries', () => {
});

it('Should throw error when API request fails', async () => {

const mockError = { response: { status: 500 } };
axios.get.mockRejectedValueOnce(mockError);

Expand All @@ -203,9 +198,6 @@ describe('Weekly Summaries', () => {

expect(dispatch).not.toHaveBeenCalled();
expect(result).toBe(500);

});

});

});
68 changes: 26 additions & 42 deletions src/actions/__tests__/weeklySummariesReportActions.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,44 +10,37 @@ vi.mock('axios');
describe('Weekly Summaries Report Actions', () => {

it('Should return action FETCH_SUMMARIES_REPORT_BEGIN', () => {

const data = weeklySummaryReport.fetchWeeklySummariesReportBegin();
expect(data).toEqual({ type: actions.FETCH_SUMMARIES_REPORT_BEGIN });

});

it('Should return action FETCH_SUMMARIES_REPORT_SUCCESS', () => {

const weeklySummariesData = {
id: 1,
dueDate: "2024-12-29",
summary: "Weekly Summary"
dueDate: '2024-12-29',
summary: 'Weekly Summary',
};

const data = weeklySummaryReport.fetchWeeklySummariesReportSuccess(weeklySummariesData);

const expectedResult = {
type: actions.FETCH_SUMMARIES_REPORT_SUCCESS,
payload: { weeklySummariesData }
}
payload: { weeklySummariesData },
};

expect(data).toEqual(expectedResult);

});

it('Should return action FETCH_SUMMARIES_REPORT_ERROR', () => {

const error = {}

const data = weeklySummaryReport.fetchWeeklySummariesReportError(error);

expect(data).toEqual({
type: actions.FETCH_SUMMARIES_REPORT_ERROR,
payload: { error }
});

})

});
});

describe('Weekly Summary Report', () => {
Expand All @@ -59,7 +52,6 @@ describe('Weekly Summary Report', () => {
});

describe('Get Weekly Summaries Report', () => {

it('Should dispatch actions and return 200 on successful API call ', async () => {

const mockData = {
Expand All @@ -71,68 +63,63 @@ describe('Weekly Summary Report', () => {
}
]
}

axios.get.mockResolvedValue({ data: mockData, status: 200 });

const result = await weeklySummaryReport.getWeeklySummariesReport()(dispatch);

expect(dispatch).toHaveBeenCalledWith(weeklySummaryReport.fetchWeeklySummariesReportBegin());
expect(dispatch).toHaveBeenCalledWith(weeklySummaryReport.fetchWeeklySummariesReportSuccess(result.data));
expect(dispatch).toHaveBeenCalledWith(
weeklySummaryReport.fetchWeeklySummariesReportSuccess(result.data),
);
expect(result.status).toBe(200);

});

it('Should dispatch error action when GET request fails', async () => {

const mockError = { response: { status: 500 } };
axios.get.mockRejectedValueOnce(mockError);

const result = await weeklySummaryReport.getWeeklySummariesReport()(dispatch);

expect(dispatch).toHaveBeenCalledWith(weeklySummaryReport.fetchWeeklySummariesReportBegin());
expect(dispatch).toHaveBeenCalledWith(weeklySummaryReport.fetchWeeklySummariesReportError(mockError))
expect(dispatch).toHaveBeenCalledWith(
weeklySummaryReport.fetchWeeklySummariesReportError(mockError),
);
expect(result).toBe(500);

});

});


describe('Update One Summary Report', () => {
let mockUserProfile;
let updatedField;

beforeEach(() => {

mockUserProfile = {
firstName: 'User First Name',
lastName: 'User Last Name',
weeklySummariesCount: 0,
weeklySummaries: [
{
id: "1",
dueDate: "2024-12-29",
summary: "Weekly Summary Week1"
}
]
}
id: '1',
dueDate: '2024-12-29',
summary: 'Weekly Summary Week1',
},
],
};

updatedField = {

weeklySummaries: [
{
id: "2",
dueDate: "2025-01-05",
summary: "Weekly Summary Week2"
id: '2',
dueDate: '2025-01-05',
summary: 'Weekly Summary Week2',
},
]

],
};

});

it('Should successfully update user profile with weekly summary and dispatch UPDATE_SUMMARY_REPORT action ', async () => {

axios.get.mockResolvedValue({ data: mockUserProfile });
axios.put.mockResolvedValue({
status: 200
Expand All @@ -142,12 +129,12 @@ describe('Weekly Summary Report', () => {
expect(result.status).toBe(200);
expect(axios.get).toHaveBeenCalledWith(ENDPOINTS.USER_PROFILE(1));
expect(axios.put).toHaveBeenCalled();
expect(dispatch).toHaveBeenCalledWith(weeklySummaryReport.updateSummaryReport({ _id: 1, updatedField }));

expect(dispatch).toHaveBeenCalledWith(
weeklySummaryReport.updateSummaryReport({ _id: 1, updatedField }),
);
});

it('Should throw error when PUT request fails', async () => {

axios.get.mockResolvedValue({ data: mockUserProfile });
axios.put.mockResolvedValue({
status: 500
Expand All @@ -159,13 +146,10 @@ describe('Weekly Summary Report', () => {
});

it('Should throw error when GET request fails', async () => {

axios.get.mockRejectedValue(new Error('Failed to fetch user profile'));

const result = weeklySummaryReport.updateOneSummaryReport(1, updatedField);
await expect(result(dispatch)).rejects.toThrow(new Error('Failed to fetch user profile'));

});

});
});
});
Loading
Loading