Skip to content

Commit b1abeab

Browse files
committed
fixed and refactored tests
1 parent f0df003 commit b1abeab

File tree

53 files changed

+1047
-763
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1047
-763
lines changed

helpers/amadeus/amadeusUtils.js

+32-3
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const amadeusEndpointRequest = async (ndcBody, action) => {
5858
response = await amadeusClient.booking.hotelBookings.post(requestStr);
5959
break;
6060
}
61-
logRQRS(ndcBody, `${action}-response`);
61+
logRQRS(response, `${action}-response`);
6262
} catch (error) {
6363
logRQRS(error, `${action}-error`);
6464
let errorMessage = 'Unknown error occurred'; //default error message
@@ -92,10 +92,39 @@ const assertAmadeusFault = (response, error) => {
9292
};
9393

9494

95+
const flightOffersSearch = async (request) => {
96+
return await amadeusEndpointRequest(request, REQUESTS.SEARCHOFFERS);
97+
};
98+
99+
const seatmapRequest = async (request) => {
100+
return await amadeusEndpointRequest(request, REQUESTS.SEATMAP);
101+
};
102+
103+
const flightOfferPrice = async (request) => {
104+
return await amadeusEndpointRequest(request, REQUESTS.PRICEOFFERS);
105+
};
106+
107+
const flightOrderCreate = async (request) => {
108+
return await amadeusEndpointRequest(request, REQUESTS.ORDERCREATE);
109+
};
110+
111+
const hotelSearch = async (request) => {
112+
return await amadeusEndpointRequest(request, REQUESTS.HOTEL_SEARCH);
113+
};
114+
115+
const hotelBook = async (request) => {
116+
return await amadeusEndpointRequest(request, REQUESTS.HOTEL_ORDER_CREATE);
117+
};
118+
95119
module.exports = {
96120
transformAmadeusFault,
97121
assertAmadeusFault,
98122
getAmadeusClient,
99-
amadeusEndpointRequest: amadeusEndpointRequest,
100-
REQUESTS,
123+
amadeusEndpointRequest,
124+
flightOffersSearch,
125+
seatmapRequest,
126+
flightOfferPrice,
127+
flightOrderCreate,
128+
hotelSearch,
129+
hotelBook
101130
};

test/spec/error.js renamed to helpers/error.test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
const GliderError = require('../../helpers/error');
1+
const GliderError = require('./error');
22
require('chai').should();
33

4-
describe('Helpers/error', () => {
4+
describe('GliderError', () => {
55
const message = 'Error message';
66
const status = 404;
77
const code = 'KIND_OF_ERROR';

test/spec/jwt.js renamed to helpers/jwt.test.js

+47-52
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
const { JWK, JWT } = require('jose');
22
require('dotenv').config();
33

4-
const { assertFailure } = require('../helpers/assertions');
5-
const { privPem, pubPem } = require('../helpers/constants');
6-
const { createToken } = require('../helpers/create');
7-
const { verifyJWT } = require('../../helpers/jwt');
4+
const { assertFailure } = require('../test/helpers/assertions');
5+
const { privPem, pubPem } = require('../test/helpers/constants');
6+
const { createToken } = require('../test/helpers/create');
7+
const { verifyJWT } = require('./jwt');
88

99
require('chai').should();
1010

@@ -14,55 +14,50 @@ describe('JWT', () => {
1414
const exp = '24 hours';
1515
let priv = privPem;
1616
let pub = pubPem;
17+
describe('#createJWT', () => {
18+
19+
it('should create a valid JWT token signed with secp256k1', async () => {
20+
const options = {
21+
priv,
22+
alg: 'ES256K',
23+
aud,
24+
iss,
25+
fragment: 'test',
26+
exp,
27+
};
28+
29+
const jwt = await createToken(options);
30+
const pubKey = JWK.asKey(
31+
pub,
32+
{
33+
alg: options.alg,
34+
use: 'sig',
35+
},
36+
);
37+
const token = JWT.verify(
38+
jwt,
39+
pubKey,
40+
{
41+
typ: 'JWT',
42+
audience: options.aud,
43+
clockTolerance: '1 min',
44+
},
45+
);
1746

18-
describe('Test helpers', () => {
19-
20-
describe('#createJWT', () => {
21-
22-
it('should create a valid JWT token signed with secp256k1', async () => {
23-
const options = {
24-
priv,
25-
alg: 'ES256K',
26-
aud,
27-
iss,
28-
fragment: 'test',
29-
exp
30-
};
31-
32-
const jwt = await createToken(options);
33-
const pubKey = JWK.asKey(
34-
pub,
35-
{
36-
alg: options.alg,
37-
use: 'sig'
38-
}
39-
);
40-
const token = JWT.verify(
41-
jwt,
42-
pubKey,
43-
{
44-
typ: 'JWT',
45-
audience: options.aud,
46-
clockTolerance: '1 min'
47-
}
48-
);
49-
50-
(token).should.be.an('object');
51-
(token).should.has.property('iss').to.equal(`${options.iss}#${options.fragment}`);
52-
(token).should.has.property('aud').to.equal(options.aud);
53-
(token).should.has.property('exp').to.be.a('number');
54-
});
47+
(token).should.be.an('object');
48+
(token).should.has.property('iss').to.equal(`${options.iss}#${options.fragment}`);
49+
(token).should.has.property('aud').to.equal(options.aud);
50+
(token).should.has.property('exp').to.be.a('number');
5551
});
5652
});
57-
5853
describe('#verifyJWT', () => {
5954
const secp256k1Options = {
6055
priv,
6156
alg: 'ES256K',
6257
aud,
6358
iss,
6459
fragment: 'test',
65-
exp
60+
exp,
6661
};
6762
let secp256k1Jwt;
6863

@@ -74,56 +69,56 @@ describe('JWT', () => {
7469
await assertFailure(
7570
verifyJWT('Unknown', secp256k1Jwt),
7671
'Unknown authorization method',
77-
403
72+
403,
7873
);
7974
});
8075

8176
it('should fail if wrong JWT token provided', async () => {
8277
await assertFailure(
8378
verifyJWT('Bearer', 'wrong' + secp256k1Jwt),
8479
'JWT is malformed',
85-
403
80+
403,
8681
);
8782
});
8883

8984
it('should fail if expired token provided', async () => {
9085
const token = await createToken(
91-
Object.assign({}, secp256k1Options, { exp: '0 s' })
86+
Object.assign({}, secp256k1Options, { exp: '0 s' }),
9287
);
9388
await assertFailure(
9489
verifyJWT('Bearer', token),
9590
'JWT is expired',
96-
403
91+
403,
9792
);
9893
});
9994

10095
it('should fail if token not meant for Glider', async () => {
10196
const token = await createToken(
102-
Object.assign({}, secp256k1Options, { aud: 'not:glider' })
97+
Object.assign({}, secp256k1Options, { aud: 'not:glider' }),
10398
);
10499
await assertFailure(
105100
verifyJWT('Bearer', token),
106101
'JWT recipient is not Glider',
107-
403
102+
403,
108103
);
109104
});
110105

111106
it('should fail if issuer not provided', async () => {
112107
const token = await createToken(
113-
Object.assign({}, secp256k1Options, { iss: '', fragment: '' })
108+
Object.assign({}, secp256k1Options, { iss: '', fragment: '' }),
114109
);
115110
await assertFailure(
116111
verifyJWT('Bearer', token),
117112
'JWT is missing issuing ORG.ID',
118-
403
113+
403,
119114
);
120115
});
121116

122117
it('should fail if signature not valid', async () => {
123118
await assertFailure(
124119
verifyJWT('Bearer', secp256k1Jwt + 'wrong=='),
125120
'JWT signature verification failed',
126-
403
121+
403,
127122
);
128123
});
129124

test/spec/parsers.js renamed to helpers/parsers/parsers.test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// const { assertFailure } = require('../../helpers/assertions');
22
const { zonedTimeToUtc } = require('date-fns-tz');
3-
const { airports } = require('../../helpers/parsers/timeZoneByAirportCode');
3+
const { airports } = require('./timeZoneByAirportCode');
44
const {
55
reduceObjectToProperty,
66
splitPropertyBySpace,
@@ -17,7 +17,7 @@ const {
1717

1818
require('chai').should();
1919

20-
describe('Helpers/parsers', () => {
20+
describe('Parsers', () => {
2121

2222
describe('#reduceObjectToProperty', () => {
2323
const arr = [
@@ -413,7 +413,7 @@ describe('Helpers/parsers', () => {
413413
(typeof a[prop]).should.to.equal('undefined');
414414
});
415415
});
416-
416+
417417
it('should fulfill', async () => {
418418
const result = reduceToProperty(data, 'prop');
419419
result.forEach(a => {

test/payload/validators/pyaloadValidatorsTest.test.js renamed to helpers/payload/validators/validators.test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const GliderError = require('../../../helpers/error');
33
const assert = require('chai').assert;
44

55
describe('/createWithOffer payload validator', () => {
6-
let payloads = require('./createWithOffer.json');
6+
let payloads = require('./testdata/createWithOffer.json');
77

88
describe('valid payload', () => {
99
payloads.valid.forEach(payload => {
@@ -26,7 +26,7 @@ describe('/createWithOffer payload validator', () => {
2626

2727

2828
describe('/searchOffers payload validator', () => {
29-
let payloads = require('./searchOffers.json');
29+
let payloads = require('./testdata/searchOffers.json');
3030
describe('valid payload', () => {
3131
payloads.valid.forEach(payload => {
3232
it('should pass validation on valid payload', () => {
@@ -47,7 +47,7 @@ describe('/searchOffers payload validator', () => {
4747
});
4848

4949
describe('/offers payload validator', () => {
50-
let payloads = require('./offersPrice.json');
50+
let payloads = require('./testdata/offersPrice.json');
5151
describe('valid payload', () => {
5252
payloads.valid.forEach(payload => {
5353
it('should pass validation on valid payload', () => {

helpers/providers/flights/ac/flightProviderAC.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const {
3535
FaultsTransformTemplate_AC: FulfillFaultsTransformTemplate_AC,
3636
} = require('./camaroTemplates/fulfillOrder');
3737

38-
module.exports = class FlightProviderAC extends FlightProvider {
38+
class FlightProviderAC extends FlightProvider {
3939
constructor () {
4040
super();
4141
}
@@ -82,3 +82,5 @@ module.exports = class FlightProviderAC extends FlightProvider {
8282
}
8383
};
8484

85+
86+
module.exports = { FlightProviderAC };

test/spec/providers/flights/ac/transformInputData.js renamed to helpers/providers/flights/ac/transformInputData/transformInputData.test.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
const regex = require('../../../../helpers/matches');
1+
const regex = require('../../../../../test/helpers/matches');
22
const {
33
airCanadaConfig,
44
} = require('../../../../../config');
55
const { expandPassengers } = require('../../../../../helpers/providers/flights/ndc/transformInputData/expandPassengers');
6-
const { mapNdcRequestData_AC } = require('../../../../../helpers/providers/flights/ac/transformInputData/searchOffers');
6+
const { mapNdcRequestData_AC } = require('./searchOffers');
77
const {
88
mapNdcRequestData_AC: mapNdcRequestData_AC_offerPrice,
9-
} = require('../../../../../helpers/providers/flights/ac/transformInputData/offerPrice');
9+
} = require('./offerPrice');
1010
const {
1111
mapNdcRequestData_AC: mapNdcRequestData_AC_seatAvailability,
12-
} = require('../../../../../helpers/providers/flights/ac/transformInputData/seatAvailability');
12+
} = require('./seatAvailability');
1313
const {
1414
mapNdcRequestData_AC: mapNdcRequestData_AC_fulfillOrder,
15-
} = require('../../../../../helpers/providers/flights/ac/transformInputData/fulfillOrder');
15+
} = require('./fulfillOrder');
1616
const {
1717
getACSystemIdOrderCreateRQ,
1818
mapNdcRequestHeaderData_AC,
1919
mapNdcRequestData_AC: mapNdcRequestData_AC_createOrder,
20-
} = require('../../../../../helpers/providers/flights/ac/transformInputData/createOrder');
20+
} = require('./createOrder');
2121

2222
require('chai').should();
2323

2424

25-
describe('flights/ac/transformInputData', () => {
25+
describe('providers/flights/ac/transformInputData', () => {
2626
const docIds = [
2727
'OneWay',
2828
'Return',

helpers/providers/flights/af/flightProviderAF.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const { ErrorsTransformTemplate_AF: OrderCreateErrorsTransformTemplate_AF } = re
1616
const { ErrorsTransformTemplate_AF: FulfillErrorsTransformTemplate_AF } = require('./camaroTemplates/fulfillOrder');
1717

1818

19-
module.exports = class FlightProviderAF extends FlightProvider {
19+
class FlightProviderAF extends FlightProvider {
2020
constructor () {
2121
super();
2222
}
@@ -62,3 +62,4 @@ module.exports = class FlightProviderAF extends FlightProvider {
6262
}
6363
};
6464

65+
module.exports = { FlightProviderAF };

0 commit comments

Comments
 (0)