-1

I wanted to check from the response format if status=AVAILABLE then arrayElement should return with roomTypeId else roomTypeId should not return for other status.

[
    {
        "status": "SOLDOUT",
        "propertyId": "dc00e77f",
        "Fee": 0,
        "isComp": false
    },
    {
        "roomTypeId": "c5730b9e",
        "status": "AVAILABLE",
        "propertyId": "dc00e77f",
        "price": {
            "baseAveragePrice": 104.71,
            "discountedAveragePrice": 86.33
        },
        "Fee": 37,
        "isComp": false
    },
    
]

[ { "status": "SOLDOUT", "propertyId": "773000cc-468a-4d86-a38f-7ae78ecfa6aa", "resortFee": 0, "isComp": false }, { "roomTypeId": "c5730b9e-78d1-4c1c-a429-06ae279e6d4d", "status": "AVAILABLE", "propertyId": "dc00e77f-d6bb-4dd7-a8ea-dc33ee9675ad", "price": { "baseAveragePrice": 104.71, "discountedAveragePrice": 86.33 }, "resortFee": 37, "isComp": false },

]

I tried to check this from below;

pm.test("Verify if Status is SOLDOUT, roomTypeId and price information is not returned ", () => {
    var jsonData = pm.response.json();
    jsonData.forEach(function(arrayElement) {
      if (arrayElement.status == "SOLDOUT") 
              { 
                 pm.expect(arrayElement).to.not.include("roomTypeId");
              }
              else if (arrayElement.status == "AVAILABLE") 
              { 
                 pm.expect(arrayElement).to.include("roomTypeId");
              }
          });
});
Sankar S
  • 19
  • 2

1 Answers1

3

You need to check if the property exists or not.

With the have.property syntax you can do that.

You can read the Postman API reference docs and also Postman uses a fork of chai internally, so ChaiJS docs should also help you.

Updated script:

pm.test("Verify if Status is SOLDOUT, roomTypeId and price information is not returned ", () => {
    var jsonData = pm.response.json();
    jsonData.forEach(function(arrayElement) {
        if (arrayElement.status === "SOLDOUT") {
            pm.expect(arrayElement).to.not.have.property("roomTypeId");
        } else if (arrayElement.status === "AVAILABLE") {
            pm.expect(arrayElement).to.have.property("roomTypeId");
        }
    });
});
Sivcan Singh
  • 1,775
  • 11
  • 15