parser-js icon indicating copy to clipboard operation
parser-js copied to clipboard

Payload property named message breaks with null value

Open ly29 opened this issue 2 years ago • 7 comments

Payload property named message breaks with null value

          "type": "object",
          "properties": {
            "message": {
              "type": ["string", "null"],
              "maxLength": 50
            }
          },
          "required": ["message"],
        },
        "examples": [{
            "name": "return",
            "payload": {
              "message": null
            }
          }
        ]
      }

It breaks rendering of the asyncapi spec, validation does not give valid errors and studio.asyncapi.com breaks

Expected result It works and renders. Note that this works if the message property is renamed or given a non null example value.

Actual result

The following error is given

	Error thrown during AsyncAPI document validation. Name: Error, message: jsonPath: Cannot read properties of null (reading 'schemaFormat'): _$_property === 'message' && _$_v.schemaFormat === void 0, stack: Error: jsonPath: Cannot read properties of null (reading 'schemaFormat'): _$_property === 'message' && _$_v.schemaFormat === void 0 at v._eval (https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4494941) at https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4491179 at https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4493697 at Array.forEach (<anonymous>) at v._walk (https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4493676) at v._trace (https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4491130) at v._trace (https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4490522) at https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4490621 at https://studio.asyncapi.com/static/js/main.f7f7093d.js:2:4493697 at Array.forEach (<anonymous>)

Steps to reproduce

Paste the following gist into the asyncapi studio https://gist.github.com/ly29/6b56cc8252ad48ac681f19ea468d540f

Troubleshooting I have reduced the issue down to one specific property that breaks.

ly29 avatar Oct 03 '23 06:10 ly29

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

github-actions[bot] avatar Oct 03 '23 06:10 github-actions[bot]

thanks for the issue,

so basically even though the message type is a tuple of string and null the example with "message": null throws an issue, but if you change to "message": "test" it works fine

this is a validation issue, cannot be fixed in the react component. Moving to parser

derberg avatar Oct 03 '23 09:10 derberg

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

github-actions[bot] avatar Oct 03 '23 09:10 github-actions[bot]

Yeah it was not clear to me where to report, thank you taking care of that.

ly29 avatar Oct 03 '23 09:10 ly29

So this looks like a bug to me. Any pointers to where to fix. Should be a reasonably small fix I imagine...

ly29 avatar Oct 05 '23 06:10 ly29

Without being 100% sure, I think its https://github.com/asyncapi/parser-js/blob/0a765c1ed46af605707d9e37f71d76192b950602/src/ruleset/v2/ruleset.ts#L119 that might be complaining.

jonaslagoni avatar Nov 09 '23 19:11 jonaslagoni

This issue has been automatically marked as stale because it has not had recent activity :sleeping:

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience :heart:

github-actions[bot] avatar Mar 09 '24 00:03 github-actions[bot]