From ab8d5c95e48fd64fb9bf3fb5e1ee3b5bdd9c7415 Mon Sep 17 00:00:00 2001 From: Oleksii Date: Tue, 23 Jan 2024 19:23:10 +0200 Subject: [PATCH 1/4] TC-3684: fareCalculation update --- src/Services/Air/AirParser.js | 2 +- test/Air/AirParser.test.js | 17 ++ ...niversalRecordRetrieve_fareCalculation.xml | 239 ++++++++++++++++++ 3 files changed, 257 insertions(+), 1 deletion(-) create mode 100644 test/FakeResponses/Air/UniversalRecordRetrieve_fareCalculation.xml diff --git a/src/Services/Air/AirParser.js b/src/Services/Air/AirParser.js index 88d9c3c6..b9254f83 100644 --- a/src/Services/Air/AirParser.js +++ b/src/Services/Air/AirParser.js @@ -28,7 +28,7 @@ const parseFareCalculation = (str) => { const firstOrigin = str.match(firstOriginPattern); const roe = str.match(/ROE((?:\d+\.)?\d+)/); return { - fareCalculation, + fareCalculation: fareCalculation.replace(/\s*\(/, '.'), ...(firstOrigin ? { firstOrigin: firstOrigin[1] } : null), diff --git a/test/Air/AirParser.test.js b/test/Air/AirParser.test.js index 3335f65a..eafe0689 100644 --- a/test/Air/AirParser.test.js +++ b/test/Air/AirParser.test.js @@ -1867,6 +1867,23 @@ describe('#AirParser', () => { ]); } }); + + it('should test fareCalculation update', () => { + const updatedFareCalculation = 'S-PRG EK X/DXB EK X/BKK PG USM Q PRGUSM17.75 300.83 PG X/BKK EK X/DXB EK PRG Q USMPRG17.75 300.84 NUC637.17'; + const uParser = new Parser('universal:UniversalRecordRetrieveRsp', 'v52_0', {}); + const parseFunction = airParser.UNIVERSAL_RECORD_RETRIEVE_REQUEST; + const xml = fs.readFileSync(`${xmlFolder}/UniversalRecordRetrieve_fareCalculation.xml`) + .toString(); + return uParser.parse(xml) + .then((json) => { + const jsonResult = parseFunction.call(uParser, json); + jsonResult[0].fareQuotes.forEach((fq) => { + fq.pricingInfos.forEach( + (pi) => expect(pi.fareCalculation).to.be.eq(updatedFareCalculation) + ); + }); + }); + }); }); describe('UNIVERSAL_RECORD_IMPORT_SIMPLE_REQUEST', () => { diff --git a/test/FakeResponses/Air/UniversalRecordRetrieve_fareCalculation.xml b/test/FakeResponses/Air/UniversalRecordRetrieve_fareCalculation.xml new file mode 100644 index 00000000..442876ca --- /dev/null +++ b/test/FakeResponses/Air/UniversalRecordRetrieve_fareCalculation.xml @@ -0,0 +1,239 @@ + + + + 'ViewOnly' retrieval of a PNR already existing in a UR is not possible. Sync is done. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + QSB 24MAR0859Z LB AG + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + S-PRG EK X/DXB EK X/BKK PG USM Q PRGUSM17.75 300.83 PG X/BKK EK X/DXB EK PRG Q USMPRG17.75 300.84 NUC637 (17END ROE22.529456 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + S-PRG EK X/DXB EK X/BKK PG USM Q PRGUSM17.75 300.83 PG X/BKK EK X/DXB EK PRG Q USMPRG17.75 300.84 NUC637 (17END ROE22.529456 + + + + + + + + + + + + + + + + + + VIEWTRIPNET + + + BOOKED THROUGH NEW ONLINE + + + EMAIL - PETKASOBOTOVA//GMAIL.COM + + + NP. VC NBR 941867 EXP 07/23 1513.42 EUR + + + ZMENENY LET TKT PNR PAXINFORMOVANY - Q22 SK + + + ZMENENY LET TKT PNR PAX INFORMOVANY - Q21 SK + + + PAX ACC UNTK VIA MAIL VQJ-CXCKF-509 + + + INVL RBKG DUE TO UN PG962/03APR + + + ADTK1GRITK/ADTKT BY 28JAN 1310 BTS LT + + + CHECK MINIMUM CONNECT TIME SEGMENTS EK0378T20MARDXBBKK/PG5171Q20MARBKKUSM + + + CHECK MINIMUM CONNECT TIME SEGMENTS EK0378T20MARDXBBKK/PG5171Q20MARBKKUSM + + + CHECK MINIMUM CONNECT TIME SEGMENTS EK0378T20MARDXBBKK/PG5171Q20MARBKKUSM + + + CHECK MINIMUM CONNECT TIME SEGMENTS EK0378T20MARDXBBKK/PG5171Q20MARBKKUSM + + + 520675230891 - PLS ADV PAX EMAIL AND MOBILE PER SSR CTCM CTCE + + + ADTK1GTOPG BY 06MAR 1110 BTS TIME ZONE OTHERWISE WILL BE XLD + + + ETKT PREVYSTAVENE A ODOSLANE PAX Z OFFICE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From d5a7c21da04f85980a87c30adc35c814c3d5fe7c Mon Sep 17 00:00:00 2001 From: Oleksii Date: Tue, 23 Jan 2024 19:24:47 +0200 Subject: [PATCH 2/4] TC-3684: audit fix --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 005adba0..8c3c69ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2109,9 +2109,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", From 30f1bccd4c11f527ecc343d1162c1e70d910bc63 Mon Sep 17 00:00:00 2001 From: Oleksii Date: Tue, 23 Jan 2024 19:25:24 +0200 Subject: [PATCH 3/4] TC-3684: patch version update --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c3c69ed..d01a3ed9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uapi-json", - "version": "1.16.2", + "version": "1.16.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "uapi-json", - "version": "1.16.2", + "version": "1.16.3", "license": "MIT", "dependencies": { "axios": "^1.6.2", diff --git a/package.json b/package.json index f2d0b00a..c9f574b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uapi-json", - "version": "1.16.2", + "version": "1.16.3", "description": "Travelport Universal API", "main": "src/", "files": [ From dfd135f797e62fa5d7c0dc55e94661f63b5356e1 Mon Sep 17 00:00:00 2001 From: Oleksii Date: Wed, 24 Jan 2024 11:20:58 +0200 Subject: [PATCH 4/4] TC-3684: fare calculation regex for correction update --- src/Services/Air/AirParser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Services/Air/AirParser.js b/src/Services/Air/AirParser.js index b9254f83..6032a402 100644 --- a/src/Services/Air/AirParser.js +++ b/src/Services/Air/AirParser.js @@ -28,7 +28,7 @@ const parseFareCalculation = (str) => { const firstOrigin = str.match(firstOriginPattern); const roe = str.match(/ROE((?:\d+\.)?\d+)/); return { - fareCalculation: fareCalculation.replace(/\s*\(/, '.'), + fareCalculation: fareCalculation.replace(/\s+\(/, '.'), ...(firstOrigin ? { firstOrigin: firstOrigin[1] } : null),