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.