diff --git a/README.md b/README.md index bd3e87bd..04c710e8 100644 --- a/README.md +++ b/README.md @@ -373,7 +373,6 @@ The following tests are not yet implemented and therefore missing: - Informative Test 6.2.21.3 - Informative Test 6.2.21.4 - Informative Test 6.2.21.5 -- Informative Test 6.2.21.6 - Informative Test 6.2.21.7 - Informative Test 6.2.21.8 - Informative Test 6.2.21.9 @@ -523,6 +522,7 @@ export const informativeTest_6_3_10: DocumentTest export const informativeTest_6_3_11: DocumentTest export const informativeTest_6_3_12: DocumentTest export const informativeTest_6_3_18: DocumentTest +export const informativeTest_6_3_21_6: DocumentTest ``` [(back to top)](#bsi-csaf-validator-lib) diff --git a/csaf_2_1/informativeTests.js b/csaf_2_1/informativeTests.js index e15078a9..042600b0 100644 --- a/csaf_2_1/informativeTests.js +++ b/csaf_2_1/informativeTests.js @@ -13,3 +13,4 @@ export { informativeTest_6_3_4 } from './informativeTests/informativeTest_6_3_4. export { informativeTest_6_3_5 } from './informativeTests/informativeTest_6_3_5.js' export { informativeTest_6_3_12 } from './informativeTests/informativeTest_6_3_12.js' export { informativeTest_6_3_18 } from './informativeTests/informativeTest_6_3_18.js' +export { informativeTest_6_3_21_6 } from './informativeTests/informativeTest_6_3_21_6.js' diff --git a/csaf_2_1/informativeTests/informativeTest_6_3_21_6.js b/csaf_2_1/informativeTests/informativeTest_6_3_21_6.js new file mode 100644 index 00000000..b51557e9 --- /dev/null +++ b/csaf_2_1/informativeTests/informativeTest_6_3_21_6.js @@ -0,0 +1,26 @@ +import { walkPath } from '../../lib/walkPaths.js' + +/** + * This implements the informative test 6.3.21.6 of the CSAF 2.1 standard. + * @param {any} doc + * @returns + */ +export async function informativeTest_6_3_21_6(doc) { + const ctx = { + infos: /** @type {Array<{ message: string; instancePath: string }>} */ ([]), + } + + await walkPath( + doc, + '/product_tree/product_paths[*]/full_product_name/x_extensions', + async (instancePath) => { + ctx.infos.push({ + instancePath, + message: + 'The element "x_extensions" exists in a path that starts with "$.product_tree.product_paths".', + }) + } + ) + + return ctx +} diff --git a/tests/csaf_2_1/oasis.js b/tests/csaf_2_1/oasis.js index ffe51ad4..dcfa8ceb 100644 --- a/tests/csaf_2_1/oasis.js +++ b/tests/csaf_2_1/oasis.js @@ -66,7 +66,6 @@ const excluded = [ '6.3.21.3', '6.3.21.4', '6.3.21.5', - '6.3.21.6', '6.3.21.7', '6.3.21.8', '6.3.21.9',