From a50dbff875b3086e4556e9be6b613528ac659a80 Mon Sep 17 00:00:00 2001 From: Oleksandr Buhaiov Date: Tue, 20 Feb 2024 18:46:14 +0200 Subject: [PATCH] Fixes * fix hierarchical codelist's base type * fix handling of 406 response code * fix handling of 'structure' request type parameter --- sdmx-tck-manager/src/checker/HttpResponseValidator.js | 4 ++-- .../src/manager/StructureTestExecutionManager.js | 8 ++++---- .../structure-queries-parsers/SdmxV21StructuresParser.js | 5 +++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/sdmx-tck-manager/src/checker/HttpResponseValidator.js b/sdmx-tck-manager/src/checker/HttpResponseValidator.js index 637ee38..a8a7f10 100644 --- a/sdmx-tck-manager/src/checker/HttpResponseValidator.js +++ b/sdmx-tck-manager/src/checker/HttpResponseValidator.js @@ -24,7 +24,7 @@ class HttpResponseValidator { } catch (err) { let tckStatus = FAILURE_CODE; let code = httpResponse != null ? httpResponse.status : void 0; - if (code === 404 || code === 501) { + if (code === 404 || code === 501 || code === 406) { tckStatus = SUCCESS_CODE; } resolve({ status: tckStatus, url: httpResponse.url, httpStatus: httpResponse.status, error: err.toString() }); @@ -72,7 +72,7 @@ class HttpResponseValidator { if (!isDefined(response) && !response.status) { throw new TckError('No response status') } - if (response.status !== "406") { + if (response.status !== 406) { throw new TckError("Response status was not 406 but " + response.status + " instead"); } } diff --git a/sdmx-tck-manager/src/manager/StructureTestExecutionManager.js b/sdmx-tck-manager/src/manager/StructureTestExecutionManager.js index f09cdd8..68f584a 100644 --- a/sdmx-tck-manager/src/manager/StructureTestExecutionManager.js +++ b/sdmx-tck-manager/src/manager/StructureTestExecutionManager.js @@ -61,10 +61,10 @@ class StructureTestExecutionManager { console.log("Test: " + toRun.testId + " SDMX workspace created."); // If the Rest Resource is "structure" then we have to call the getRandomSdmxObject() function. - var randomStructure = workspace.getRandomSdmxObjectOfType(SDMX_STRUCTURE_TYPE.fromRestResource(toRun.resource)); - if (toRun.resource === "structure") { - randomStructure = workspace.getRandomSdmxObject(); - } + let randomStructure = (toRun.resource === "structure") + ? workspace.getRandomSdmxObject() + : workspace.getRandomSdmxObjectOfType(SDMX_STRUCTURE_TYPE.fromRestResource(toRun.resource)); + testResult.randomStructure = { structureType: randomStructure.getStructureType(), agencyId: randomStructure.getAgencyId(), diff --git a/sdmx-tck-parsers/src/parsers/structure-queries-parsers/SdmxV21StructuresParser.js b/sdmx-tck-parsers/src/parsers/structure-queries-parsers/SdmxV21StructuresParser.js index 231e3e3..c0fe213 100644 --- a/sdmx-tck-parsers/src/parsers/structure-queries-parsers/SdmxV21StructuresParser.js +++ b/sdmx-tck-parsers/src/parsers/structure-queries-parsers/SdmxV21StructuresParser.js @@ -232,9 +232,10 @@ class SdmxV21StructuresParser { structures.set(structureType, []); } structures.get(structureType).push( - new MaintainableObject(structureType, hierarchicalCodelist, + new ItemSchemeObject(structureType, hierarchicalCodelist, SdmxV21StructureReferencesParser.getReferences(hierarchicalCodelist), - SdmxV21JsonForStubsParser.getDetail(structureType, hierarchicalCodelist) + SdmxV21JsonForStubsParser.getDetail(structureType, hierarchicalCodelist), + SdmxV21JsonItemsParser.getItems(structureType, hierarchicalCodelist) ) ); }