OpenAPIValidators
OpenAPIValidators copied to clipboard
TypeError: The "url" argument must be of type string. Received undefined
Are you using jest or chai? Jest
Are you using OpenAPI 2, 3.0.X, or 3.1.0? 3.0.X
Describe the bug clearly TypeError: The "url" argument must be of type string. Received undefined
48 | console.log('response', response)
49 |
> 50 | expect(response).toSatisfyApiSpec()
| ^
51 | // console.log('response', response)
52 | // expect(response.data).toSatisfySchemaInApiSpec("/api/v2/example");
53 | })
at getPathname (node_modules/openapi-validator/lib/utils/common.utils.ts:14:7)
at OpenApi3Spec.findExpectedPathItem (node_modules/openapi-validator/lib/classes/AbstractOpenApiSpec.ts:113:39)
at OpenApi3Spec.findExpectedResponseOperation (node_modules/openapi-validator/lib/classes/AbstractOpenApiSpec.ts:122:33)
at OpenApi3Spec.findExpectedResponse (node_modules/openapi-validator/lib/classes/AbstractOpenApiSpec.ts:89:12)
at OpenApi3Spec.validateResponse (node_modules/openapi-validator/lib/classes/AbstractOpenApiSpec.ts:131:31)
at Object.default_1 (node_modules/jest-openapi/src/matchers/toSatisfyApiSpec.ts:26:39)
at Object.toSatisfyApiSpec (node_modules/jest-openapi/src/index.ts:28:31)
at __EXTERNAL_MATCHER_TRAP__ (node_modules/expect/build/index.js:386:30)
at Object.toSatisfyApiSpec (node_modules/expect/build/index.js:387:15)
at Object.<anonymous> (tests/unit/example.spec.js:50:22)
Steps to reproduce the bug: jestOpenAPI(path.join(__dirname, './validationAPISpecs/example.json'))
describe('Example description', () => { it('tests getExample method', async () => {
const response = await getExample() //this is an axios request, the response is printing correctly so i know thats working
console.log('response', response)
expect(response).toSatisfyApiSpec()
}) })
What did you expect to happen instead? I expected the package to compare the response with the api spec. But I am unable to resolve the error.
Hi @AK3030, thanks for raising this 🙂 this is strange - we have tests covering axios. The error is thrown from here, suggesting that response.request.path
is undefined.
Would you mind pasting response
, response.request
or response.request.path
? (whichever is most helpful)
And what version of axios are you using?
I actually found the solution here: https://github.com/openapi-library/OpenAPIValidators/issues/228
I changed the jest environment to node and it fixed the issue.
axios version is 0.26.0