filiphric / cypress-plugin-api

Cypress plugin to show your API information in the Cypress UI runner
ISC License
264 stars 35 forks source link

After Merage with Last request and Before Request not Before not showing #52

Closed matifniaz closed 1 year ago

matifniaz commented 2 years ago

After the Request merges with last API Request and Before Request not showing. Verison latest V[2.3.1](https://www.npmjs.com/package/cypress-plugin-api/v/2.3.1) The snapshot is attached for reference. 12121212 image

filiphric commented 2 years ago

Hey @matifniaz I don’t think I follow. What exactly is not showing on the snapshot that should be there?

matifniaz commented 2 years ago

Two issues:

  1. In before have login API that is not showing.
  2. After merge with my last API "emailTemplateList"

12121212

filiphric commented 2 years ago

So do I understand correctly that the scrolling does not work here? What OS & browser is this please?

matifniaz commented 2 years ago

OS - Windows 11 Browser Chrome

Not a scrolling issue. Before not showing and After the payload request response merges with the last API request.

filiphric commented 2 years ago

oooooooh I think I understand now. I’ll take a look and make sure to fix this

filiphric commented 2 years ago

oooooooh I think I understand now. I’ll take a look and make sure to fix this

filiphric commented 2 years ago

hey @matifniaz can you please send a reproducible issue? I cannot seem to replicate this. before and after hooks work well, I don’t see any merging of payloads.

matifniaz commented 2 years ago

@filiphric - Thanks for helping us and sorry for the late response. Please see the below code and snapshot, In the last when I click on the "After All" Request its showing the result with the last API Request/Response. `/// const url = 'https://reqres.in'; describe("API TestCases",()=>{ before(()=>{ cy.api('GET', url + '/api/users?page=2') .then((response) => { expect(response).to.have.property('status', 200) expect(response.body.data[0].email).to.equal('michael.lawson@reqres.in') }) })

after(()=>{
        cy.api('GET', url + '/api/users/2')
            .then((response) => {
                expect(response).to.have.property('status', 200)
                expect(response.body.data.email).to.equal('janet.weaver@reqres.in')
            })
})

it('POST --> CREATE', () => { cy.api({ 'method': 'POST', 'url': url + '/api/users', headers: { 'Content-Type': 'application/json' }, body: { "name": "AtifNiaz", "job": "Lead SQA" }

})
    .then((response) => {
        expect(response).to.have.property('status', 201)
        expect(response.body.name).to.equal('AtifNiaz')
        expect(response.body.job).to.equal('Lead SQA')
        expect(response.body.id).not.to.be.null
        expect(response.body.createdAt).not.to.be.null
    })

}) it('PUT --> UPDATE', () => { cy.api({ 'method': 'PUT', 'url': url + '/api/users/2', headers: { 'Content-Type': 'application/json' }, body: { "name": "AtifNiaz", "job": "Lead SQA" } }) .then((response) => { expect(response).to.have.property('status', 200) expect(response.body.name).to.equal('AtifNiaz') expect(response.body.job).to.equal('Lead SQA') expect(response.body.createdAt).not.to.be.null }) }) }) ` image

filiphric commented 2 years ago

this is how Cypress works, there’s not too much I can do with that. you will see the api call from before() hook as part of your first test and api call from after() hook in your last test.