const schema = {
    "type": "array",
    "items": {
        "$ref": "#/definitions/TreeViewElement"
    },
    "definitions": {
        "TreeViewElement": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "text": {
                    "type": "string"
                },
                "has_checkbox": {
                    "type": "boolean"
                },
                "value": {
                    "type": "string"
                },
                "children": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/TreeViewElement"
                    }
                }
            },
            "required": [
                "text"
            ],
            "title": "TreeViewElement",
            "if": {
                "properties": { 
                    "has_checkbox": {
                        "const": true
                    }
                }
            },
            "then": {
                "required": [
                    "text",
                    "has_checkbox",
                    "value"
                ]
            },
            "else": {
                "required": [
                    "text"
                ]
            }
        }
    }
}

pm.test("Validating schema", () => {
    pm.response.to.have.jsonSchema(schema);
});