ncc-prototype-email-alerts-sub
Version:
Northumberland Council Front End Email Alerts Subscription Prototype
52 lines (44 loc) • 1.98 kB
text/typescript
import request from "supertest";
import getConfig from "../../libs/config";
import getApp from '../../app'
import axios from "axios";
jest.mock('axios')
beforeAll(done => {
done()
})
describe("form post with middleware on eaach postrequest", () => {
test('when no postcode is entered in form should redirect to error page', async ()=>{
const config = getConfig();
const app = getApp(config);
const appRequest = request(app);
const response = await appRequest.post('/postcode').send({postcode: ''});
expect(response.status).toBe(302);
expect(response.text).toContain('Redirecting to /postcode?hasError=true')
});
test('when incorrect postcode is entered in form should redirect to error page', async ()=>{
const config = getConfig();
const app = getApp(config);
const appRequest = request(app);
const response = await appRequest.post('/postcode').send({postcode: 'a2345fd'});
expect(response.status).toBe(302);
expect(response.text).toContain('Redirecting to /postcode?hasError=true')
});
test('when correct postcode is entered in form should not redirect to error page', async ()=>{
const config = getConfig();
const app = getApp(config);
const appRequest = request(app);
const testData = [{
"UPRN": "100110668168",
"AddressLine1": "1 Mitford Gardens - Ineligible",
"AddressLine2": "",
"AddressLine3": "",
"Town": "Stakeford, Choppington",
"County": "Northumberland",
"Postcode": "NE62 5YR"
}];
(axios.get as jest.Mock).mockResolvedValueOnce({status: 200, data: testData})
const res = await appRequest.post('/postcode').send({postcode: 'ne128rf'});
expect(res.status).toBe(302);
expect(res.header['location']).toContain('/address-select');
})
})