@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
63 lines (54 loc) • 1.83 kB
text/typescript
import { Response, Request } from 'express'
import UserReportRequestListUtils from './utils'
import type { RequestedReportService, ReportingService } from '../../../services'
import { Services } from '../../../types/Services'
import mockRequested from '../../../../../test-app/mocks/mockClients/store/mockRequestedUserListData'
import { ReportType, RequestStatus } from '../../../types/UserReports'
describe('UserReportRequestListUtils', () => {
let res: Response
let req: Request
let requestedReportService: RequestedReportService
let reportingService: ReportingService
let services: Services
describe('getRequestStatus', () => {
beforeEach(() => {
res = {
locals: {
user: {
uuid: 'UuId',
token: 'ToKeN',
},
csfrToken: 'CsRfToKeN',
},
} as unknown as Response
req = {
body: {
executionId: 'executionId',
status: 'SUBMITTED',
type: ReportType.REPORT,
},
} as unknown as Request
requestedReportService = {
updateStatus: jest.fn(),
getReportByExecutionId: jest.fn().mockResolvedValue(mockRequested.requestedReady),
} as unknown as RequestedReportService
reportingService = {
getAsyncReportStatus: jest.fn().mockResolvedValue({
status: RequestStatus.FINISHED,
}),
} as unknown as ReportingService
services = {
requestedReportService,
reportingService,
} as unknown as Services
})
it('getRequestStatus', async () => {
const result = await UserReportRequestListUtils.getRequestStatus({
res,
req,
services,
})
expect(result).toEqual({ reportData: mockRequested.requestedReady, status: RequestStatus.FINISHED })
})
})
})