ncc-prototype-email-alerts-sub
Version:
Northumberland Council Front End Email Alerts Subscription Prototype
69 lines (46 loc) • 2.3 kB
text/typescript
import { sendToPaymentProvider } from './../../libs/paymentWrapper';
import { Request, Response } from 'express';
import { PaymentData } from '../../types/paymentdata';
describe('payment wrapper tests', () => {
const res = { redirect: jest.fn() } as unknown as Response;
const req = {
session: { paymentData:{} as PaymentData }
} as unknown as Request
beforeEach(()=>{
req.session.paymentData.paymentstatus = 0;
req.session.paymentData.servicecode = 'GWASTE';
req.session.paymentData.serviceref = 'GW-100110668187';
})
afterEach(()=>{
jest.clearAllMocks();
})
test('redirect to payment provider with servicecode and serviceref', () => {
sendToPaymentProvider(req, res);
expect(res.redirect).toHaveBeenCalledWith('http://paymentportaldev.northumberland.gov.uk/Payment/CheckDetails.aspx?s=GWASTE&r=GW-100110668187');
});
test('expect payment status on attempt to be changed to 50', () => {
sendToPaymentProvider(req, res);
expect(req.session.paymentData.paymentstatus).toBe(50);
});
//test servicecode only - keep tests independant
test('redirect to payment provider with servicecode ctax', () => {
req.session.paymentData.servicecode = 'CTAX';
sendToPaymentProvider(req, res);
expect(res.redirect).toHaveBeenCalledWith('http://paymentportaldev.northumberland.gov.uk/Payment/CheckDetails.aspx?s=CTAX&r=GW-100110668187');
});
//test servicecode
test('redirect to payment provider with service ref', () => {
req.session.paymentData.serviceref = '100110668187';
sendToPaymentProvider(req, res);
expect(res.redirect).toHaveBeenCalledWith('http://paymentportaldev.northumberland.gov.uk/Payment/CheckDetails.aspx?s=GWASTE&r=100110668187');
});
/* test('empty page param throws error', () => {
const res = { render: jest.fn() } as unknown as Response;
const req = {
params: {},
session: { id: '0', formErrors: [] },
query: { hasError: false }
} as unknown as Request
expect(() => { pageController(req, res) }).toThrow();
}); */
});