diff --git a/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.test.ts b/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.test.ts index 3855722..149f577 100644 --- a/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.test.ts +++ b/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.test.ts @@ -8,14 +8,17 @@ import { weeklyFinancialReportsWorkflow } from './weeklyFinancialReports.workflo vi.mock('@temporalio/workflow', () => { const getTargetUnitsMock = vi.fn(); const fetchFinancialAppDataMock = vi.fn(); + const sendReportToSlackMock = vi.fn(); return { proxyActivities: () => ({ getTargetUnits: getTargetUnitsMock, fetchFinancialAppData: fetchFinancialAppDataMock, + sendReportToSlack: sendReportToSlackMock, }), __getTargetUnitsMock: () => getTargetUnitsMock, __getFetchFinancialAppDataMock: () => fetchFinancialAppDataMock, + __getSendReportToSlackMock: () => sendReportToSlackMock, }; }); @@ -23,6 +26,7 @@ describe('weeklyFinancialReportsWorkflow', () => { type WorkflowModuleWithMock = typeof workflowModule & { __getTargetUnitsMock: () => ReturnType; __getFetchFinancialAppDataMock: () => ReturnType; + __getSendReportToSlackMock: () => ReturnType; }; const getTargetUnitsMock = ( workflowModule as WorkflowModuleWithMock @@ -30,10 +34,14 @@ describe('weeklyFinancialReportsWorkflow', () => { const fetchFinancialAppDataMock = ( workflowModule as WorkflowModuleWithMock ).__getFetchFinancialAppDataMock(); + const sendReportToSlackMock = ( + workflowModule as WorkflowModuleWithMock + ).__getSendReportToSlackMock(); beforeEach(() => { getTargetUnitsMock.mockReset(); fetchFinancialAppDataMock.mockReset(); + sendReportToSlackMock.mockReset(); }); it('throws AppError for invalid group name', async () => { @@ -72,12 +80,17 @@ describe('weeklyFinancialReportsWorkflow', () => { fetchFinancialAppDataMock.mockResolvedValueOnce({ fileLink: 'result.json', }); + sendReportToSlackMock.mockResolvedValueOnce('slack-link.json'); const result = await weeklyFinancialReportsWorkflow( GroupNameEnum.SD_REPORT, ); - expect(result).toBe('result.json'); + expect(result).toBe('slack-link.json'); expect(getTargetUnitsMock).toHaveBeenCalledWith(GroupNameEnum.SD_REPORT); expect(fetchFinancialAppDataMock).toHaveBeenCalledWith('file.json'); + expect(sendReportToSlackMock).toHaveBeenCalledWith( + 'file.json', + 'result.json', + ); }); }); diff --git a/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.ts b/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.ts index 1e4a5aa..531b9ec 100644 --- a/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.ts +++ b/workers/main/src/workflows/weeklyFinancialReports/weeklyFinancialReports.workflow.ts @@ -5,11 +5,10 @@ import { AppError } from '../../common/errors'; import { GroupName } from '../../common/types'; import { GroupNameEnum } from '../../configs/weeklyFinancialReport'; -const { getTargetUnits, fetchFinancialAppData } = proxyActivities< - typeof activities ->({ - startToCloseTimeout: '10 minutes', -}); +const { getTargetUnits, fetchFinancialAppData, sendReportToSlack } = + proxyActivities({ + startToCloseTimeout: '10 minutes', + }); export async function weeklyFinancialReportsWorkflow( groupName: GroupName, @@ -23,5 +22,5 @@ export async function weeklyFinancialReportsWorkflow( const targetUnits = await getTargetUnits(groupName); const finData = await fetchFinancialAppData(targetUnits.fileLink); - return finData.fileLink; + return await sendReportToSlack(targetUnits.fileLink, finData.fileLink); }