Muzi Jack
Muzi Jack

Reputation: 798

Karate doesn't recognize dashes

I wrote a simple mock that checks if a specific header exists then return a specif response based on that, but karate doesn't understand dashes(-) in my headers for an example Client-ID gives an error of ReferenceError: "ID" is not defined in <eval> at line number 1 but header Accept work fine. i'm passing this header through postman.

enter image description here

and this how the code looks

* def fun = function(){ var test = requestHeaders; for(i in test) if(test.Client-ID) return true}

enter image description here

Upvotes: 1

Views: 568

Answers (1)

Peter Thomas
Peter Thomas

Reputation: 58058

When you have characters like - part of the JSON key, you need to use quotes.

* def foo = { 'Content-Type': 'application/json' }
* match foo['Content-Type'] == 'application/json'

Also try if this works for you, it may be simpler:

Scenario: pathMatches('/v1/headers') && karate.get("requestHeaders['Client-ID']")

And in case you are testing a value, headerContains() can be used: https://github.com/intuit/karate/tree/master/karate-netty#headercontains

Upvotes: 3

Related Questions