Skip to content

Commit 4adfe42

Browse files
authored
Merge pull request #610 from govuk-one-login/OJ-3131-headless-stub
OJ-3131: Use /start headless stub
2 parents 26b38ff + 8aedfc7 commit 4adfe42

21 files changed

Lines changed: 11260 additions & 8567 deletions

integration-tests/api-gateway/abandon/abandon-happy.test.ts

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,54 @@ import {
99
authorizationEndpoint,
1010
checkEndpoint,
1111
createSession,
12+
getJarAuthorization,
1213
} from "../endpoints";
13-
import { CLIENT_ID, CLIENT_URL, NINO } from "../env-variables";
14+
import { CLIENT_ID, NINO, REDIRECT_URL } from "../env-variables";
1415

15-
jest.setTimeout(30000);
16+
jest.setTimeout(30_000);
1617

1718
describe("Given the session is valid and expecting to abandon the journey", () => {
1819
let sessionId: string;
1920
let sessionTableName: string;
20-
let state: string;
21-
let personIDTableName: string;
21+
let privateApi: string;
22+
2223
let output: Partial<{
2324
CommonStackName: string;
2425
StackName: string;
2526
NinoUsersTable: string;
2627
UserAttemptsTable: string;
28+
PrivateApiGatewayId: string;
2729
}>;
2830

29-
beforeEach(async () => {
31+
let commonStack: string;
32+
33+
beforeAll(async () => {
3034
output = await stackOutputs(process.env.STACK_NAME);
31-
sessionTableName = `session-${output.CommonStackName}`;
35+
commonStack = `${output.CommonStackName}`;
36+
sessionTableName = `session-${commonStack}`;
37+
});
3238

33-
const session = await createSession();
39+
beforeEach(async () => {
40+
const data = await getJarAuthorization();
41+
const request = await data.json();
42+
privateApi = `${output.PrivateApiGatewayId}`;
43+
const session = await createSession(privateApi, request);
3444
const sessionData = await session.json();
3545
sessionId = sessionData.session_id;
36-
state = sessionData.state;
37-
await checkEndpoint({ "session-id": sessionId }, NINO);
46+
await checkEndpoint(privateApi, { "session-id": sessionId }, NINO);
3847
await authorizationEndpoint(
48+
privateApi,
3949
sessionId,
4050
CLIENT_ID,
41-
`${CLIENT_URL}/callback`,
42-
state
51+
REDIRECT_URL,
52+
sessionData.state
4353
);
4454
});
4555

4656
afterEach(async () => {
47-
output = await stackOutputs(process.env.STACK_NAME);
48-
personIDTableName = `person-identity-${output.CommonStackName}`;
49-
sessionTableName = `session-${output.CommonStackName}`;
50-
5157
await clearItemsFromTables(
5258
{
53-
tableName: personIDTableName,
59+
tableName: `person-identity-${commonStack}`,
5460
items: { sessionId: sessionId },
5561
},
5662
{
@@ -66,7 +72,9 @@ describe("Given the session is valid and expecting to abandon the journey", () =
6672
});
6773

6874
it("Should receive a 200 response when /abandon endpoint is called without optional headers", async () => {
69-
const abandonResponse = await abandonEndpoint({ "session-id": sessionId });
75+
const abandonResponse = await abandonEndpoint(privateApi, {
76+
"session-id": sessionId,
77+
});
7078
expect(abandonResponse.status).toEqual(200);
7179

7280
const sessionRecord = await getItemByKey(sessionTableName, {
@@ -79,7 +87,7 @@ describe("Given the session is valid and expecting to abandon the journey", () =
7987
});
8088

8189
it("Should receive a 200 response when /abandon endpoint is called with optional headers", async () => {
82-
const abandonResponse = await abandonEndpoint({
90+
const abandonResponse = await abandonEndpoint(privateApi, {
8391
"session-id": sessionId,
8492
"txma-audit-encoded": "test encoded header",
8593
});

integration-tests/api-gateway/abandon/abandon-unhappy.test.ts

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,71 +8,74 @@ import {
88
authorizationEndpoint,
99
checkEndpoint,
1010
createSession,
11+
getJarAuthorization,
1112
} from "../endpoints";
12-
import { CLIENT_ID, CLIENT_URL, NINO } from "../env-variables";
13+
import { CLIENT_ID, NINO, REDIRECT_URL } from "../env-variables";
1314

14-
jest.setTimeout(30000);
15+
jest.setTimeout(30_000);
1516

1617
describe("Given the session is invalid and expecting to abandon the journey", () => {
1718
let sessionId: string;
18-
let sessionTableName: string;
19-
let state: string;
20-
let personIDTableName: string;
19+
let privateApi: string;
20+
2121
let output: Partial<{
2222
CommonStackName: string;
2323
StackName: string;
2424
NinoUsersTable: string;
2525
UserAttemptsTable: string;
26+
PrivateApiGatewayId: string;
2627
}>;
28+
let commonStack: string;
2729

28-
beforeEach(async () => {
30+
beforeAll(async () => {
2931
output = await stackOutputs(process.env.STACK_NAME);
30-
sessionTableName = `session-${output.CommonStackName}`;
32+
commonStack = `${output.CommonStackName}`;
33+
});
3134

32-
const session = await createSession();
35+
beforeEach(async () => {
36+
const data = await getJarAuthorization();
37+
const request = await data.json();
38+
privateApi = `${output.PrivateApiGatewayId}`;
39+
const session = await createSession(privateApi, request);
3340
const sessionData = await session.json();
3441
sessionId = sessionData.session_id;
35-
state = sessionData.state;
36-
await checkEndpoint({ "session-id": sessionId }, NINO);
42+
await checkEndpoint(privateApi, { "session-id": sessionId }, NINO);
3743
await authorizationEndpoint(
44+
privateApi,
3845
sessionId,
3946
CLIENT_ID,
40-
`${CLIENT_URL}/callback`,
41-
state
47+
REDIRECT_URL,
48+
sessionData.state
4249
);
4350
});
4451

4552
afterEach(async () => {
46-
output = await stackOutputs(process.env.STACK_NAME);
47-
personIDTableName = `person-identity-${output.CommonStackName}`;
48-
sessionTableName = `session-${output.CommonStackName}`;
49-
5053
await clearItemsFromTables(
5154
{
52-
tableName: personIDTableName,
55+
tableName: `person-identity-${commonStack}`,
5356
items: { sessionId: sessionId },
5457
},
5558
{
5659
tableName: `${output.NinoUsersTable}`,
5760
items: { sessionId: sessionId },
5861
},
5962
{
60-
tableName: sessionTableName,
63+
tableName: `session-${commonStack}`,
6164
items: { sessionId: sessionId },
6265
}
6366
);
6467
await clearAttemptsTable(sessionId, `${output.UserAttemptsTable}`);
6568
});
6669

67-
it("Should receive a 400 response when /abandon endpoint is called with invalid session id", async () => {
68-
const abandonResponse = await abandonEndpoint({
69-
"session-id": "test"
70-
});
71-
expect(abandonResponse.status).toEqual(400);
70+
it("Should receive a 400 response when /abandon endpoint is called with invalid session id", async () => {
71+
const abandonResponse = await abandonEndpoint(privateApi, {
72+
"session-id": "test",
7273
});
74+
expect(abandonResponse.status).toEqual(400);
75+
});
7376

74-
it("Should receive a 400 response when /abandon endpoint is called with no session id", async () => {
75-
const abandonResponse = await abandonEndpoint({});
76-
expect(abandonResponse.status).toEqual(400);
77-
});
77+
it("Should receive a 400 response when /abandon endpoint is called with no session id", async () => {
78+
const abandonResponse = await abandonEndpoint(privateApi, {});
79+
expect(abandonResponse.status).toEqual(400);
80+
});
7881
});

integration-tests/api-gateway/authorization/authorization-happy.test.ts

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,54 @@ import {
88
authorizationEndpoint,
99
checkEndpoint,
1010
createSession,
11+
getJarAuthorization,
1112
} from "../endpoints";
12-
import { CLIENT_ID, CLIENT_URL, NINO } from "../env-variables";
13+
import { CLIENT_ID, NINO, REDIRECT_URL } from "../env-variables";
1314

14-
jest.setTimeout(30000);
15+
jest.setTimeout(30_000);
1516

1617
describe("Given the session is valid and expecting to be authorized", () => {
17-
let authCode: any;
18+
let authCode: { value: string };
1819
let sessionId: string;
1920
let state: string;
20-
let personIDTableName: string;
21+
let privateApi: string;
22+
2123
let output: Partial<{
2224
CommonStackName: string;
2325
StackName: string;
2426
NinoUsersTable: string;
2527
UserAttemptsTable: string;
28+
PrivateApiGatewayId: string;
2629
}>;
30+
2731
let sessionTableName: string;
2832

33+
let commonStack: string;
34+
2935
beforeAll(async () => {
3036
output = await stackOutputs(process.env.STACK_NAME);
31-
sessionTableName = `session-${output.CommonStackName}`;
37+
commonStack = `${output.CommonStackName}`;
38+
sessionTableName = `session-${commonStack}`;
39+
40+
privateApi = `${output.PrivateApiGatewayId}`;
41+
});
3242

33-
const session = await createSession();
43+
beforeEach(async () => {
44+
const data = await getJarAuthorization();
45+
const request = await data.json();
46+
const session = await createSession(privateApi, request);
3447
const sessionData = await session.json();
48+
3549
sessionId = sessionData.session_id;
3650
state = sessionData.state;
37-
await checkEndpoint({ "session-id": sessionId }, NINO);
51+
52+
await checkEndpoint(privateApi, { "session-id": sessionId }, NINO);
3853
});
3954

4055
afterEach(async () => {
41-
output = await stackOutputs(process.env.STACK_NAME);
42-
personIDTableName = `person-identity-${output.CommonStackName}`;
43-
sessionTableName = `session-${output.CommonStackName}`;
4456
await clearItemsFromTables(
4557
{
46-
tableName: personIDTableName,
58+
tableName: `person-identity-${commonStack}`,
4759
items: { sessionId: sessionId },
4860
},
4961
{
@@ -60,11 +72,13 @@ describe("Given the session is valid and expecting to be authorized", () => {
6072

6173
it("Should return an authorizationCode when /authorization endpoint is called", async () => {
6274
const authResponse = await authorizationEndpoint(
75+
privateApi,
6376
sessionId,
6477
CLIENT_ID,
65-
`${CLIENT_URL}/callback`,
78+
REDIRECT_URL,
6679
state
6780
);
81+
6882
const authData = await authResponse.json();
6983
authCode = authData.authorizationCode;
7084

0 commit comments

Comments
 (0)