I don't understand why these are failing the variations I have tried are:
response.body.should.be.a('object').and.to.have.property('id');
and
response.body.should.have.property('id');
I get the error Uncaught AssertionError: expected { Object (starss) } to have property 'id'
here is my JSON payload from Postman
{
"starss": {
"id": 1,
"name": "1",
"discovery_name": "1",
"imageFileName": "test1.jpg",
"datediscovered": "2001-01-01T00:00:00.000Z",
"colour": "1",
"mass": "1.000",
"dfe": "1.000",
"galaxy_origin": "1",
"star_categories_id": 1,
"createdAt": "2021-12-03",
"updatedAt": "2021-12-12"
}
}
here are my Mocha tests
describe('GET/stars/:id',() => {
it("it should get one star by ID", (done) =>
{
// Uncaught AssertionError: expected { Object (starss) } to be a starss
// star GET by ID
const starId = 1;
chai.request(server)
.get("/stars/" + starId )
.end((err,response)=>{
response.should.have.status(200);
response.body.should.be.a('object');
response.body.should.be.a('object').and.to.have.property('id');
response.body.should.have.property('id');
// response.body.should.have.property('name');
// response.body.should.have.property('discovery_name');
// response.body.should.have.property('imageFileName');
// response.body.should.have.property('datediscovered');
// response.body.should.have.property('colour');
// response.body.should.have.property('mass');
// response.body.should.have.property('dfe');
// response.body.should.have.property('galaxy_origin');
// response.body.should.have.property('star_categories_id');
done();
});
});
The reason why it's not finding the id property is because the response body only has the key of starss. You need to go into the starss object to access its keys. I used to mocha/chai codepen to verify the result:
mocha.setup('bdd'); var expect = chai.expect; describe('GET/stars/:id',function() { var body = { "starss": { "id": 1, "name": "1", "discovery_name": "1", "imageFileName": "test1.jpg", "datediscovered": "2001-01-01T00:00:00.000Z", "colour": "1", "mass": "1.000", "dfe": "1.000", "galaxy_origin": "1", "star_categories_id": 1, "createdAt": "2021-12-03", "updatedAt": "2021-12-12" } } it("body to be object", function() { expect(body).to.be.a('object'); }) it("it should get one star by ID", function() { console.log(body) expect(body.starss).to.contain.key('id'); // response.body.should.have.property('"id"'); }) }); mocha.run();
The URL for the codepen is here: https://codepen.io/alexpyzhianov/pen/KVbeyO
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.