From f4e13463d1df9f320f31a5fafd991ac42416b58f Mon Sep 17 00:00:00 2001 From: "Shivangi Das (team VTM)" Date: Tue, 12 Dec 2023 09:30:34 +0000 Subject: [PATCH] minor(cb2-10120): add conditional logic, remove type warnings (#155) --- .../tech-record/get/hgv/complete/index.json | 92 ++++ .../tech-record/get/hgv/skeleton/index.json | 92 ++++ .../tech-record/get/hgv/testable/index.json | 92 ++++ .../tech-record/get/lgv/complete/index.json | 92 ++++ .../tech-record/get/lgv/skeleton/index.json | 92 ++++ .../tech-record/get/trl/complete/index.json | 92 ++++ .../tech-record/get/trl/skeleton/index.json | 92 ++++ .../tech-record/get/trl/testable/index.json | 92 ++++ .../tech-record/put/hgv/complete/index.json | 1 + .../tech-record/put/hgv/skeleton/index.json | 1 + .../tech-record/put/hgv/testable/index.json | 1 + .../tech-record/put/lgv/complete/index.json | 1 + .../tech-record/put/lgv/skeleton/index.json | 1 + .../tech-record/put/trl/complete/index.json | 1 + .../tech-record/put/trl/skeleton/index.json | 1 + .../tech-record/put/trl/testable/index.json | 1 + .../tech-record/get/hgv/complete/index.json | 107 +++++ .../tech-record/get/hgv/skeleton/index.json | 107 +++++ .../tech-record/get/hgv/testable/index.json | 107 +++++ .../tech-record/get/lgv/complete/index.json | 107 +++++ .../tech-record/get/lgv/skeleton/index.json | 107 +++++ .../tech-record/get/trl/complete/index.json | 107 +++++ .../tech-record/get/trl/skeleton/index.json | 107 +++++ .../tech-record/get/trl/testable/index.json | 107 +++++ .../tech-record/put/hgv/complete/index.json | 1 + .../tech-record/put/hgv/skeleton/index.json | 1 + .../tech-record/put/hgv/testable/index.json | 1 + .../tech-record/put/lgv/complete/index.json | 1 + .../tech-record/put/lgv/skeleton/index.json | 1 + .../tech-record/put/trl/complete/index.json | 1 + .../tech-record/put/trl/skeleton/index.json | 1 + .../tech-record/put/trl/testable/index.json | 1 + package-lock.json | 399 ++++++++++++------ package.json | 2 +- tests/hgv/skeleton.test.ts | 71 ++++ tests/resources/data/hgvSkeleton.json | 191 +++++++++ 36 files changed, 2136 insertions(+), 135 deletions(-) diff --git a/json-definitions/v3/tech-record/get/hgv/complete/index.json b/json-definitions/v3/tech-record/get/hgv/complete/index.json index f680cb38..71aeb4f9 100644 --- a/json-definitions/v3/tech-record/get/hgv/complete/index.json +++ b/json-definitions/v3/tech-record/get/hgv/complete/index.json @@ -117,6 +117,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -992,5 +993,96 @@ "string" ] } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/hgv/skeleton/index.json b/json-definitions/v3/tech-record/get/hgv/skeleton/index.json index c642f275..87472e4d 100644 --- a/json-definitions/v3/tech-record/get/hgv/skeleton/index.json +++ b/json-definitions/v3/tech-record/get/hgv/skeleton/index.json @@ -87,6 +87,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1073,5 +1074,96 @@ "string" ] } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/hgv/testable/index.json b/json-definitions/v3/tech-record/get/hgv/testable/index.json index f5c01b9a..cb8915fe 100644 --- a/json-definitions/v3/tech-record/get/hgv/testable/index.json +++ b/json-definitions/v3/tech-record/get/hgv/testable/index.json @@ -91,6 +91,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1064,5 +1065,96 @@ "string" ] } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/lgv/complete/index.json b/json-definitions/v3/tech-record/get/lgv/complete/index.json index 19bee636..71d7fa53 100644 --- a/json-definitions/v3/tech-record/get/lgv/complete/index.json +++ b/json-definitions/v3/tech-record/get/lgv/complete/index.json @@ -122,6 +122,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -571,5 +572,96 @@ "type": "string" } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/lgv/skeleton/index.json b/json-definitions/v3/tech-record/get/lgv/skeleton/index.json index f417e596..106b123b 100644 --- a/json-definitions/v3/tech-record/get/lgv/skeleton/index.json +++ b/json-definitions/v3/tech-record/get/lgv/skeleton/index.json @@ -119,6 +119,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -578,5 +579,96 @@ "techRecord_vehicleSubclass": { "$ref": "../../../enums/vehicleSubclass.ignore.json" } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/trl/complete/index.json b/json-definitions/v3/tech-record/get/trl/complete/index.json index 5c058bf2..9d6f6158 100644 --- a/json-definitions/v3/tech-record/get/trl/complete/index.json +++ b/json-definitions/v3/tech-record/get/trl/complete/index.json @@ -99,6 +99,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1197,5 +1198,96 @@ } } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/trl/skeleton/index.json b/json-definitions/v3/tech-record/get/trl/skeleton/index.json index 3d41c7b7..8f83d6eb 100644 --- a/json-definitions/v3/tech-record/get/trl/skeleton/index.json +++ b/json-definitions/v3/tech-record/get/trl/skeleton/index.json @@ -79,6 +79,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1272,5 +1273,96 @@ } } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/get/trl/testable/index.json b/json-definitions/v3/tech-record/get/trl/testable/index.json index 7fe50dce..26cfb25e 100644 --- a/json-definitions/v3/tech-record/get/trl/testable/index.json +++ b/json-definitions/v3/tech-record/get/trl/testable/index.json @@ -81,6 +81,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1262,5 +1263,96 @@ } } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": ["techRecord_adrDetails_permittedDangerousGoods"] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if" : { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": ["Rigid tank","Rigid battery","Full drawbar tank", + "Full drawbar battery", "Centre axle tank" ,"Centre axle battery", + "Semi trailer tank","Semi trailer battery"] + } + }, + "required": ["techRecord_adrDetails_vehicleDetails_type"] + }, + "then" : { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required":["techRecord_adrDetails_batteryListNumber"] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": ["techRecord_adrDetails_weight"] + } + } + ] } } \ No newline at end of file diff --git a/json-definitions/v3/tech-record/put/hgv/complete/index.json b/json-definitions/v3/tech-record/put/hgv/complete/index.json index fadf86a9..9f431b52 100644 --- a/json-definitions/v3/tech-record/put/hgv/complete/index.json +++ b/json-definitions/v3/tech-record/put/hgv/complete/index.json @@ -105,6 +105,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/hgv/skeleton/index.json b/json-definitions/v3/tech-record/put/hgv/skeleton/index.json index 90b2439a..5799c5b8 100644 --- a/json-definitions/v3/tech-record/put/hgv/skeleton/index.json +++ b/json-definitions/v3/tech-record/put/hgv/skeleton/index.json @@ -73,6 +73,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/hgv/testable/index.json b/json-definitions/v3/tech-record/put/hgv/testable/index.json index 88060a3b..2ae1a0e9 100644 --- a/json-definitions/v3/tech-record/put/hgv/testable/index.json +++ b/json-definitions/v3/tech-record/put/hgv/testable/index.json @@ -75,6 +75,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/lgv/complete/index.json b/json-definitions/v3/tech-record/put/lgv/complete/index.json index 4fb661c9..2f10cc92 100644 --- a/json-definitions/v3/tech-record/put/lgv/complete/index.json +++ b/json-definitions/v3/tech-record/put/lgv/complete/index.json @@ -124,6 +124,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/lgv/skeleton/index.json b/json-definitions/v3/tech-record/put/lgv/skeleton/index.json index e48f7b43..f06bdfd0 100644 --- a/json-definitions/v3/tech-record/put/lgv/skeleton/index.json +++ b/json-definitions/v3/tech-record/put/lgv/skeleton/index.json @@ -121,6 +121,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/trl/complete/index.json b/json-definitions/v3/tech-record/put/trl/complete/index.json index ac955eee..3cacca35 100644 --- a/json-definitions/v3/tech-record/put/trl/complete/index.json +++ b/json-definitions/v3/tech-record/put/trl/complete/index.json @@ -88,6 +88,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/trl/skeleton/index.json b/json-definitions/v3/tech-record/put/trl/skeleton/index.json index bccab438..9c0be694 100644 --- a/json-definitions/v3/tech-record/put/trl/skeleton/index.json +++ b/json-definitions/v3/tech-record/put/trl/skeleton/index.json @@ -103,6 +103,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-definitions/v3/tech-record/put/trl/testable/index.json b/json-definitions/v3/tech-record/put/trl/testable/index.json index 368501ea..17c0a304 100644 --- a/json-definitions/v3/tech-record/put/trl/testable/index.json +++ b/json-definitions/v3/tech-record/put/trl/testable/index.json @@ -105,6 +105,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/get/hgv/complete/index.json b/json-schemas/v3/tech-record/get/hgv/complete/index.json index 640d1198..629c7988 100644 --- a/json-schemas/v3/tech-record/get/hgv/complete/index.json +++ b/json-schemas/v3/tech-record/get/hgv/complete/index.json @@ -126,6 +126,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1171,5 +1172,111 @@ "string" ] } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/hgv/skeleton/index.json b/json-schemas/v3/tech-record/get/hgv/skeleton/index.json index d230e215..b2c9c25a 100644 --- a/json-schemas/v3/tech-record/get/hgv/skeleton/index.json +++ b/json-schemas/v3/tech-record/get/hgv/skeleton/index.json @@ -96,6 +96,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1252,5 +1253,111 @@ "string" ] } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/hgv/testable/index.json b/json-schemas/v3/tech-record/get/hgv/testable/index.json index 7c4438b0..8fd8e5c8 100644 --- a/json-schemas/v3/tech-record/get/hgv/testable/index.json +++ b/json-schemas/v3/tech-record/get/hgv/testable/index.json @@ -100,6 +100,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1243,5 +1244,111 @@ "string" ] } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/lgv/complete/index.json b/json-schemas/v3/tech-record/get/lgv/complete/index.json index ad6b08a1..b21ec9b3 100644 --- a/json-schemas/v3/tech-record/get/lgv/complete/index.json +++ b/json-schemas/v3/tech-record/get/lgv/complete/index.json @@ -131,6 +131,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -697,5 +698,111 @@ "type": "string" } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/lgv/skeleton/index.json b/json-schemas/v3/tech-record/get/lgv/skeleton/index.json index 75def403..295bc49c 100644 --- a/json-schemas/v3/tech-record/get/lgv/skeleton/index.json +++ b/json-schemas/v3/tech-record/get/lgv/skeleton/index.json @@ -128,6 +128,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -704,5 +705,111 @@ ] } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/trl/complete/index.json b/json-schemas/v3/tech-record/get/trl/complete/index.json index 4e84b9d8..9ab4e49d 100644 --- a/json-schemas/v3/tech-record/get/trl/complete/index.json +++ b/json-schemas/v3/tech-record/get/trl/complete/index.json @@ -108,6 +108,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1465,5 +1466,111 @@ } } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/trl/skeleton/index.json b/json-schemas/v3/tech-record/get/trl/skeleton/index.json index ec766053..058d696a 100644 --- a/json-schemas/v3/tech-record/get/trl/skeleton/index.json +++ b/json-schemas/v3/tech-record/get/trl/skeleton/index.json @@ -88,6 +88,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1540,5 +1541,111 @@ } } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/get/trl/testable/index.json b/json-schemas/v3/tech-record/get/trl/testable/index.json index 4565919b..df3cf88b 100644 --- a/json-schemas/v3/tech-record/get/trl/testable/index.json +++ b/json-schemas/v3/tech-record/get/trl/testable/index.json @@ -90,6 +90,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ @@ -1530,5 +1531,111 @@ } } } + }, + "if": { + "properties": { + "techRecord_adrDetails_dangerousGoods": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_dangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_vehicleDetails_type", + "techRecord_adrDetails_vehicleDetails_approvalDate", + "techRecord_adrDetails_permittedDangerousGoods", + "techRecord_adrDetails_additionalNotes_number" + ], + "allOf": [ + { + "if": { + "properties": { + "techRecord_adrDetails_permittedDangerousGoods": { + "type": "array", + "contains": { + "type": "string", + "pattern": "^Explosives \\(type \\d\\)$" + } + } + }, + "required": [ + "techRecord_adrDetails_permittedDangerousGoods" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_compatibilityGroupJ" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_vehicleDetails_type": { + "enum": [ + "Rigid tank", + "Rigid battery", + "Full drawbar tank", + "Full drawbar battery", + "Centre axle tank", + "Centre axle battery", + "Semi trailer tank", + "Semi trailer battery" + ] + } + }, + "required": [ + "techRecord_adrDetails_vehicleDetails_type" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_tank_tankDetails_tankManufacturer", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture", + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo", + "techRecord_adrDetails_tank_tankDetails_tankCode", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_listStatementApplicable": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_listStatementApplicable" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_batteryListNumber" + ] + } + }, + { + "if": { + "properties": { + "techRecord_adrDetails_brakeEndurance": { + "const": true + } + }, + "required": [ + "techRecord_adrDetails_brakeEndurance" + ] + }, + "then": { + "required": [ + "techRecord_adrDetails_weight" + ] + } + } + ] } } \ No newline at end of file diff --git a/json-schemas/v3/tech-record/put/hgv/complete/index.json b/json-schemas/v3/tech-record/put/hgv/complete/index.json index f7cdc8eb..d4561b0e 100644 --- a/json-schemas/v3/tech-record/put/hgv/complete/index.json +++ b/json-schemas/v3/tech-record/put/hgv/complete/index.json @@ -114,6 +114,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/hgv/skeleton/index.json b/json-schemas/v3/tech-record/put/hgv/skeleton/index.json index 0a9cc98f..5363cad9 100644 --- a/json-schemas/v3/tech-record/put/hgv/skeleton/index.json +++ b/json-schemas/v3/tech-record/put/hgv/skeleton/index.json @@ -82,6 +82,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/hgv/testable/index.json b/json-schemas/v3/tech-record/put/hgv/testable/index.json index 1eda78b5..a24bd07f 100644 --- a/json-schemas/v3/tech-record/put/hgv/testable/index.json +++ b/json-schemas/v3/tech-record/put/hgv/testable/index.json @@ -84,6 +84,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/lgv/complete/index.json b/json-schemas/v3/tech-record/put/lgv/complete/index.json index eb107bbb..116ee6f9 100644 --- a/json-schemas/v3/tech-record/put/lgv/complete/index.json +++ b/json-schemas/v3/tech-record/put/lgv/complete/index.json @@ -133,6 +133,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/lgv/skeleton/index.json b/json-schemas/v3/tech-record/put/lgv/skeleton/index.json index 9bfb0d7c..3e16aae1 100644 --- a/json-schemas/v3/tech-record/put/lgv/skeleton/index.json +++ b/json-schemas/v3/tech-record/put/lgv/skeleton/index.json @@ -130,6 +130,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/trl/complete/index.json b/json-schemas/v3/tech-record/put/trl/complete/index.json index 77e808e2..8beb82fc 100644 --- a/json-schemas/v3/tech-record/put/trl/complete/index.json +++ b/json-schemas/v3/tech-record/put/trl/complete/index.json @@ -97,6 +97,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/trl/skeleton/index.json b/json-schemas/v3/tech-record/put/trl/skeleton/index.json index d4190ef1..1aee4563 100644 --- a/json-schemas/v3/tech-record/put/trl/skeleton/index.json +++ b/json-schemas/v3/tech-record/put/trl/skeleton/index.json @@ -147,6 +147,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/json-schemas/v3/tech-record/put/trl/testable/index.json b/json-schemas/v3/tech-record/put/trl/testable/index.json index 7d33d029..7813bac9 100644 --- a/json-schemas/v3/tech-record/put/trl/testable/index.json +++ b/json-schemas/v3/tech-record/put/trl/testable/index.json @@ -149,6 +149,7 @@ "items": { "title": "Additional Examiner Notes", "additionalProperties": false, + "type": "object", "properties": { "note": { "type": [ diff --git a/package-lock.json b/package-lock.json index 22a992d6..ba84e8aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@dvsa/cvs-type-definitions", - "version": "4.2.0", + "version": "4.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@dvsa/cvs-type-definitions", - "version": "4.2.0", + "version": "4.3.0", "license": "ISC", "dependencies": { "ajv": "^8.12.0", @@ -40,17 +40,89 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/compat-data": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", @@ -97,12 +169,12 @@ "dev": true }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -141,22 +213,22 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -227,9 +299,9 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "dependencies": { "@babel/types": "^7.22.5" @@ -239,18 +311,18 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" @@ -280,13 +352,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -365,9 +437,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -554,33 +626,33 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -589,13 +661,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -3323,9 +3395,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4072,9 +4144,9 @@ } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { "node": ">=6" } @@ -4195,9 +4267,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -4550,9 +4622,9 @@ } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4942,12 +5014,71 @@ } }, "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "requires": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "@babel/compat-data": { @@ -4988,12 +5119,12 @@ } }, "@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", + "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", "dev": true, "requires": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.23.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -5025,19 +5156,19 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true }, "@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "requires": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" } }, "@babel/helper-hoist-variables": { @@ -5090,24 +5221,24 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, "requires": { "@babel/types": "^7.22.5" } }, "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true }, "@babel/helper-validator-option": { @@ -5128,13 +5259,13 @@ } }, "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "dependencies": { @@ -5197,9 +5328,9 @@ } }, "@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", + "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -5329,42 +5460,42 @@ } }, "@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" } }, "@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", + "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", "dev": true, "requires": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.5", + "@babel/types": "^7.23.5", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", + "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" } }, @@ -7452,9 +7583,9 @@ } }, "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -8028,9 +8159,9 @@ } }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, "pure-rand": { "version": "6.0.2", @@ -8108,9 +8239,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "shebang-command": { @@ -8361,9 +8492,9 @@ } }, "semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" diff --git a/package.json b/package.json index 9a66b9b5..5d1be0df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dvsa/cvs-type-definitions", - "version": "4.2.0", + "version": "4.3.0", "description": "type definitions for cvs vta and vtm applications", "main": "index.js", "repository": { diff --git a/tests/hgv/skeleton.test.ts b/tests/hgv/skeleton.test.ts index a1dcc121..d8c2af34 100644 --- a/tests/hgv/skeleton.test.ts +++ b/tests/hgv/skeleton.test.ts @@ -31,3 +31,74 @@ describe("validate skeleton hgv schema", () => { expect(res).toEqual(false); }); }); +describe("validate ADR hgv schema", () => { + it("should fail if adr fields are missing when adr is Yes", () => { + const data = hgvData[5]; + const res = isValidObject(schemaName, data); + expect(res).toEqual(false); + }); + it("should pass if adr fields are missing when adr is No", () => { + const data = hgvData[5]; + (data as any).techRecord_adrDetails_dangerousGoods = false; + const res = isValidObject(schemaName, data); + expect(res).toEqual(true); + }); + it("should pass if adr fields are present when adr is Yes", () => { + const data = hgvData[6]; + const res = isValidObject(schemaName, data); + expect(res).toEqual(true); + }); + it("should fail if compatibilityGroupJ is missing when permitted goods is Explosives type 2 or 3", () => { + const data = hgvData[6]; + data.techRecord_adrDetails_permittedDangerousGoods = ["Explosives (type 2)"]; + const res = isValidObject(schemaName, data); + expect(res).toEqual(false); + }); + it("should pass if compatibilityGroupJ is present when permitted goods is Explosives type 2 or 3", () => { + const data = hgvData[6]; + data.techRecord_adrDetails_permittedDangerousGoods = ["Explosives (type 3)"]; + (data as any).techRecord_adrDetails_compatibilityGroupJ = "I"; + const res = isValidObject(schemaName, data); + expect(res).toEqual(true); + }); + it("should fail if techRecord_adrDetails_vehicleDetails_type is tank or battery but tank details are missing", () => { + const data = hgvData[6]; + data.techRecord_adrDetails_vehicleDetails_type = "Semi trailer battery"; + const res = isValidObject(schemaName, data); + expect(res).toEqual(false); + }); + it("should pass if techRecord_adrDetails_vehicleDetails_type is tank or battery and tank details are present", () => { + const data = hgvData[7]; + const res = isValidObject(schemaName, data); + expect(res).toEqual(true); + }); + it("should fail if techRecord_adrDetails_listStatementApplicable is true but reference number is missing", () => { + const data = hgvData[7]; + data.techRecord_adrDetails_vehicleDetails_type = "Rigid battery"; + (data as any).techRecord_adrDetails_listStatementApplicable = true; + const res = isValidObject(schemaName, data); + expect(res).toEqual(false); + }); + it("should pass if techRecord_adrDetails_listStatementApplicable is true and reference number is present", () => { + const data = hgvData[7]; + data.techRecord_adrDetails_vehicleDetails_type = "Rigid battery"; + (data as any).techRecord_adrDetails_listStatementApplicable = true; + (data as any).techRecord_adrDetails_batteryListNumber = "12345678"; + const res = isValidObject(schemaName, data); + expect(res).toEqual(true); + }); + + it("should fail if techRecord_adrDetails_brakeEndurance is true but weight is missing", () => { + const data = hgvData[7]; + (data as any).techRecord_adrDetails_brakeEndurance = true; + const res = isValidObject(schemaName, data); + expect(res).toEqual(false); + }); + it("should pass if techRecord_adrDetails_brakeEndurance is true and weight is present", () => { + const data = hgvData[7]; + (data as any).techRecord_adrDetails_brakeEndurance = true; + (data as any).techRecord_adrDetails_weight = "123"; + const res = isValidObject(schemaName, data); + expect(res).toEqual(true); + }); +}); diff --git a/tests/resources/data/hgvSkeleton.json b/tests/resources/data/hgvSkeleton.json index bca57b78..7a27adc9 100644 --- a/tests/resources/data/hgvSkeleton.json +++ b/tests/resources/data/hgvSkeleton.json @@ -275,5 +275,196 @@ "techRecord_vehicleConfiguration": null, "techRecord_vehicleType": "hgv", "vin": "DANHGV1231" + }, + { + "createdTimestamp": "2023-06-16T11:26:30.196Z", + "partialVin": "000002", + "primaryVrm": "GB02DAN", + "systemNumber": "10000067", + "techRecord_adrDetails_dangerousGoods": true, + "techRecord_alterationMarker": false, + "techRecord_bodyType_code": "b", + "techRecord_bodyType_description": "box", + "techRecord_brakes_dtpNumber": "7606S", + "techRecord_createdAt": "2023-06-16T11:26:30.196Z", + "techRecord_createdById": "28e4bca6-3992-4a06-874d-143395a8b4df", + "techRecord_createdByName": "Test User", + "techRecord_dimensions_length": 10000, + "techRecord_dimensions_width": 2500, + "techRecord_drawbarCouplingFitted": false, + "techRecord_emissionsLimit": 6, + "techRecord_euVehicleCategory": "n3", + "techRecord_euroStandard": "Euro 6", + "techRecord_frontAxleTo5thWheelMax": 0, + "techRecord_frontAxleTo5thWheelMin": 0, + "techRecord_frontAxleToRearAxle": 6000, + "techRecord_frontVehicleTo5thWheelCouplingMax": 0, + "techRecord_frontVehicleTo5thWheelCouplingMin": 0, + "techRecord_fuelPropulsionSystem": "Diesel", + "techRecord_functionCode": "R", + "techRecord_grossDesignWeight": 19500, + "techRecord_grossEecWeight": 18000, + "techRecord_grossGbWeight": 18000, + "techRecord_make": "SCANIA", + "techRecord_manufactureYear": 2022, + "techRecord_maxTrainDesignWeight": 0, + "techRecord_maxTrainEecWeight": 0, + "techRecord_maxTrainGbWeight": 0, + "techRecord_microfilm": null, + "techRecord_model": "P370", + "techRecord_noOfAxles": 2, + "techRecord_notes": "EC Whole Vehicle Type Approval", + "techRecord_numberOfWheelsDriven": 2, + "techRecord_offRoad": false, + "techRecord_reasonForCreation": "VTM Test Data", + "techRecord_recordCompleteness": "skeleton", + "techRecord_regnDate": "2023-04-01", + "techRecord_roadFriendly": false, + "techRecord_speedLimiterMrk": false, + "techRecord_statusCode": "provisional", + "techRecord_tachoExemptMrk": false, + "techRecord_trainDesignWeight": 22500, + "techRecord_trainEecWeight": 21500, + "techRecord_trainGbWeight": 21500, + "techRecord_tyreUseCode": "2B", + "techRecord_variantNumber": "10", + "techRecord_variantVersionNumber": "023GTH", + "techRecord_vehicleClass_code": "v", + "techRecord_vehicleClass_description": "heavy goods vehicle", + "techRecord_vehicleConfiguration": "rigid", + "techRecord_vehicleType": "hgv", + "vin": "GB01DAN0000000002" + }, + { + "createdTimestamp": "2023-06-16T11:26:30.196Z", + "partialVin": "000002", + "primaryVrm": "GB02DAN", + "systemNumber": "10000067", + "techRecord_adrDetails_dangerousGoods": true, + "techRecord_adrDetails_vehicleDetails_type": "Artic tractor", + "techRecord_adrDetails_vehicleDetails_approvalDate": "2023-02-10", + "techRecord_adrDetails_permittedDangerousGoods": ["AT"], + "techRecord_adrDetails_additionalNotes_number": ["1"], + "techRecord_alterationMarker": false, + "techRecord_bodyType_code": "b", + "techRecord_bodyType_description": "box", + "techRecord_brakes_dtpNumber": "7606S", + "techRecord_createdAt": "2023-06-16T11:26:30.196Z", + "techRecord_createdById": "28e4bca6-3992-4a06-874d-143395a8b4df", + "techRecord_createdByName": "Test User", + "techRecord_dimensions_length": 10000, + "techRecord_dimensions_width": 2500, + "techRecord_drawbarCouplingFitted": false, + "techRecord_emissionsLimit": 6, + "techRecord_euVehicleCategory": "n3", + "techRecord_euroStandard": "Euro 6", + "techRecord_frontAxleTo5thWheelMax": 0, + "techRecord_frontAxleTo5thWheelMin": 0, + "techRecord_frontAxleToRearAxle": 6000, + "techRecord_frontVehicleTo5thWheelCouplingMax": 0, + "techRecord_frontVehicleTo5thWheelCouplingMin": 0, + "techRecord_fuelPropulsionSystem": "Diesel", + "techRecord_functionCode": "R", + "techRecord_grossDesignWeight": 19500, + "techRecord_grossEecWeight": 18000, + "techRecord_grossGbWeight": 18000, + "techRecord_make": "SCANIA", + "techRecord_manufactureYear": 2022, + "techRecord_maxTrainDesignWeight": 0, + "techRecord_maxTrainEecWeight": 0, + "techRecord_maxTrainGbWeight": 0, + "techRecord_microfilm": null, + "techRecord_model": "P370", + "techRecord_noOfAxles": 2, + "techRecord_notes": "EC Whole Vehicle Type Approval", + "techRecord_numberOfWheelsDriven": 2, + "techRecord_offRoad": false, + "techRecord_reasonForCreation": "VTM Test Data", + "techRecord_recordCompleteness": "skeleton", + "techRecord_regnDate": "2023-04-01", + "techRecord_roadFriendly": false, + "techRecord_speedLimiterMrk": false, + "techRecord_statusCode": "provisional", + "techRecord_tachoExemptMrk": false, + "techRecord_trainDesignWeight": 22500, + "techRecord_trainEecWeight": 21500, + "techRecord_trainGbWeight": 21500, + "techRecord_tyreUseCode": "2B", + "techRecord_variantNumber": "10", + "techRecord_variantVersionNumber": "023GTH", + "techRecord_vehicleClass_code": "v", + "techRecord_vehicleClass_description": "heavy goods vehicle", + "techRecord_vehicleConfiguration": "rigid", + "techRecord_vehicleType": "hgv", + "vin": "GB01DAN0000000002" + }, + { + "createdTimestamp": "2023-06-16T11:26:30.196Z", + "partialVin": "000002", + "primaryVrm": "GB02DAN", + "systemNumber": "10000067", + "techRecord_adrDetails_dangerousGoods": true, + "techRecord_adrDetails_vehicleDetails_type": "Rigid tank", + "techRecord_adrDetails_vehicleDetails_approvalDate": "2023-02-10", + "techRecord_adrDetails_permittedDangerousGoods": ["AT"], + "techRecord_adrDetails_additionalNotes_number": ["1"], + "techRecord_adrDetails_tank_tankDetails_tankManufacturer": "Test", + "techRecord_adrDetails_tank_tankDetails_yearOfManufacture": 2010, + "techRecord_adrDetails_tank_tankDetails_tankManufacturerSerialNo": "123ADB", + "techRecord_adrDetails_tank_tankDetails_tankTypeAppNo": "ADBFGH123", + "techRecord_adrDetails_tank_tankDetails_tankCode": "122", + "techRecord_adrDetails_tank_tankDetails_tankStatement_substancesPermitted":"Substances permitted under the tankcode and any special provisionsspecified in 9 may be carried", + "techRecord_alterationMarker": false, + "techRecord_bodyType_code": "b", + "techRecord_bodyType_description": "box", + "techRecord_brakes_dtpNumber": "7606S", + "techRecord_createdAt": "2023-06-16T11:26:30.196Z", + "techRecord_createdById": "28e4bca6-3992-4a06-874d-143395a8b4df", + "techRecord_createdByName": "Test User", + "techRecord_dimensions_length": 10000, + "techRecord_dimensions_width": 2500, + "techRecord_drawbarCouplingFitted": false, + "techRecord_emissionsLimit": 6, + "techRecord_euVehicleCategory": "n3", + "techRecord_euroStandard": "Euro 6", + "techRecord_frontAxleTo5thWheelMax": 0, + "techRecord_frontAxleTo5thWheelMin": 0, + "techRecord_frontAxleToRearAxle": 6000, + "techRecord_frontVehicleTo5thWheelCouplingMax": 0, + "techRecord_frontVehicleTo5thWheelCouplingMin": 0, + "techRecord_fuelPropulsionSystem": "Diesel", + "techRecord_functionCode": "R", + "techRecord_grossDesignWeight": 19500, + "techRecord_grossEecWeight": 18000, + "techRecord_grossGbWeight": 18000, + "techRecord_make": "SCANIA", + "techRecord_manufactureYear": 2022, + "techRecord_maxTrainDesignWeight": 0, + "techRecord_maxTrainEecWeight": 0, + "techRecord_maxTrainGbWeight": 0, + "techRecord_microfilm": null, + "techRecord_model": "P370", + "techRecord_noOfAxles": 2, + "techRecord_notes": "EC Whole Vehicle Type Approval", + "techRecord_numberOfWheelsDriven": 2, + "techRecord_offRoad": false, + "techRecord_reasonForCreation": "VTM Test Data", + "techRecord_recordCompleteness": "skeleton", + "techRecord_regnDate": "2023-04-01", + "techRecord_roadFriendly": false, + "techRecord_speedLimiterMrk": false, + "techRecord_statusCode": "provisional", + "techRecord_tachoExemptMrk": false, + "techRecord_trainDesignWeight": 22500, + "techRecord_trainEecWeight": 21500, + "techRecord_trainGbWeight": 21500, + "techRecord_tyreUseCode": "2B", + "techRecord_variantNumber": "10", + "techRecord_variantVersionNumber": "023GTH", + "techRecord_vehicleClass_code": "v", + "techRecord_vehicleClass_description": "heavy goods vehicle", + "techRecord_vehicleConfiguration": "rigid", + "techRecord_vehicleType": "hgv", + "vin": "GB01DAN0000000002" } ] \ No newline at end of file