Cypress : How can I prevent the test runner from reloading at cy.visit()?

Viewed 512

In my beforeEach(), I'm doing a series of cy.request() in order to auth. Then when my test starts, I do a cy.visit() but when this happens, the test runner reloads and tries to do all the requests in the beforeEach() again. How can I prevent this from happening? I need all the request to run JUST ONCE, setting the cookies so that when I do the cy.visit(), I am authenticated.

beforeEach(() => {

  cy.request({
    method: 'GET',

    url: 'https://mybaseURL/Pages/Invoices.aspx?ID=448BCE457A28028A161B6F348F427D0CF85929734939D5630D0B29A07C4DBD916D7D09777E25B4D760EFD8A6699F05EDB316477B17A68BAD635BB35220232F080D3A586DE6E00796352AC539FFDE53C2',

    headers: { 
      'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',  
      'accept-encooding': 'gzip, deflate, br',  
      'accept-language': 'en-US,en;q=0.9',  
      'sec-ch-ua': 'Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',  
      'sec-ch-ua-mobile': '?0',  
      'sec-fetch-dest': 'document',  
      'sec-fetch-mode': 'navigate',  
      'sec-fetch-site': 'none',  
      'sec-fetch-user': '?1',  
      'upgrade-insecure-requests': '1',  
      'Content-Type': 'text/html',  
      'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)   Chrome/90.0.4430.212 Safari/537.36'
    },

    followRedirect: false

  }).then((response) => {

      cy.request({
      method:'GET',

      url: 'mybaseURL.com' + response.headers.location,

      headers: {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',  
        'accept-encooding': 'gzip, deflate, br',  
        'accept-language': 'en-US,en;q=0.9',  
        'sec-ch-ua': 'Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',  
        'sec-ch-ua-mobile': '?0',  
        'sec-fetch-dest': 'document',  
        'sec-fetch-mode': 'navigate',  
        'sec-fetch-site': 'none',  
        'sec-fetch-user': '?1',  
        'upgrade-insecure-requests': '1',  
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)   Chrome/90.0.4430.212 Safari/537.36'
      },

      followRedirect: false

    }).then((response) => {

        cy.request({
        method:'GET',

        url: 'https://mybaseurl.com' + response.headers.location,

        headers: {
          'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',  
          'accept-encooding': 'gzip, deflate, br',  
          'accept-language': 'en-US,en;q=0.9',  
          'sec-ch-ua': 'Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',  
          'sec-ch-ua-mobile': '?0',  
          'sec-fetch-dest': 'document',  
          'sec-fetch-mode': 'navigate',  
          'sec-fetch-site': 'none',  
          'sec-fetch-user': '?1',  
          'upgrade-insecure-requests': '1',  
          'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)   Chrome/90.0.4430.212 Safari/537.36'
        },

        followRedirect: false

      }).then((response) => {

        cy.request({
          method:'GET',

          url: 'https://mybaseURL.com' + response.headers.location,

          headers: {
            'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',  
            'accept-encooding': 'gzip, deflate, br',  
            'accept-language': 'en-US,en;q=0.9',
            //'cookie':   
            'sec-ch-ua': 'Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',  
            'sec-ch-ua-mobile': '?0',  
            'sec-fetch-dest': 'document',  
            'sec-fetch-mode': 'navigate',  
            'sec-fetch-site': 'none',  
            'sec-fetch-user': '?1',  
            'upgrade-insecure-requests': '1',  
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)   Chrome/90.0.4430.212 Safari/537.36'
          },

          followRedirect: false

        }).then((response) => {
          
cy.request({
            method:'GET',

            url: 'https://mybaseurl.com' + response.headers.location,

            headers: {
              'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',  
              'accept-encooding': 'gzip, deflate, br',  
              'accept-language': 'en-US,en;q=0.9',
              //'cookie':   
              'sec-ch-ua': 'Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',  
              'sec-ch-ua-mobile': '?0',  
              'sec-fetch-dest': 'document',  
              'sec-fetch-mode': 'navigate',  
              'sec-fetch-site': 'none',  
              'sec-fetch-user': '?1',  
              'upgrade-insecure-requests': '1',  
              'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)   Chrome/90.0.4430.212 Safari/537.36'
            },

            followRedirect: false

          }).then((response) =>{

              cy.request({
                  method:'GET',

                  url: response.headers.location,

                  headers: {
                    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',  
                    'accept-encooding': 'gzip, deflate, br',  
                    'accept-language': 'en-US,en;q=0.9',
                    //'cookie':   
                    'sec-ch-ua': 'Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"',  
                    'sec-ch-ua-mobile': '?0',  
                    'sec-fetch-dest': 'iframe',  
                    'sec-fetch-mode': 'navigate',  
                    'sec-fetch-site': 'none',  
                    'sec-fetch-user': '?1',  
                    'upgrade-insecure-requests': '1',  
                    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)   Chrome/90.0.4430.212 Safari/537.36'
                  },

                  followRedirect: false

                }).then(() =>{

                      cy.request('https://adifferentbaseurl.com/index.html')
                })
              })
            })
          })
        })
      })
})

  describe('SelfService Home', () => {
    it('loads page', () => {  

cy.visit('https://mybaseurl.com/WebClient_Azure_QA/Pages/Invoices.aspx?ID=448BCE457A28028A161B6F348F427D0CF85929734939D5630D0B29A07C4DBD916D7D09777E25B4D760EFD8A6699F05EDB316477B17A68BAD635BB35220232F080D3A586DE6E00796352AC539FFDE53C2')
    })
  })

I'm reading that cy.visit always reloads the test runner when visiting a different baseUrl and that if I set the baseurl before doing anything that it won't reload the test runner when I do the visit but that doesn't seem to work for me.

https://github.com/cypress-io/cypress/issues/2636

0 Answers
Related