compound key in resource path causes validator to fail.

Issue #98 new
Peter Streef created an issue

When using a compound key/template in a single path segment the validator fails.

example of a compound key that does not work:

"/pet/{type}:{petId}"

when the delimiter is changed to / (so basically creating separate segments for key parts) the problem no longer occurs.

Error:

TypeError: Cannot read properties of undefined (reading 'schema')
    at toJsonSchema (/usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/validate-mock-value-against-spec.js:11:40)
    at validateMockValueAgainstSpec (/usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/validate-mock-value-against-spec.js:57:20)
    at jsonSchemaTypeValidator (/usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/get-parsed-spec-operation.js:11:159)
    at /usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/get-parsed-spec-operation.js:20:39
    at Array.map (<anonymous>)
    at doInteractionAndOperationMatchPaths (/usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/get-parsed-spec-operation.js:17:48)
    at doInteractionAndOperationMatch (/usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/get-parsed-spec-operation.js:41:30)
    at /usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/get-parsed-spec-operation.js:58:39
    at Array.map (<anonymous>)
    at getParsedSpecOperation (/usr/local/lib/node_modules/swagger-mock-validator/dist/swagger-mock-validator/validate-spec-and-mock/get-parsed-spec-operation.js:58:10)

I’ve added an example spec/pact where this fails. I’m running version 10.1.4

Comments (2)

  1. Sebastian Tello Account Deactivated

    @Peter Streef Although the error should be handled properly, I don’t think : is a valid character in a URL path. Shouldn’t it be URL encoded as %3A?

  2. Peter Streef reporter

    @{557057:526b7077-83d4-4cfb-955a-e261d129103c} fair point, however I have also tried with (and the example is actually with) _ as the delimiter giving the same result.

  3. Log in to comment