27th April 2022
Coding⚑
-
Correction: Correct the way to test for an attribute of an html element.
cy .get('a') .should('have.attr', 'href', 'https://docs.cypress.io') .and('have.attr', 'target', '_blank') // Test it's meant to be opened // another tab
-
New: Sending different responses.
To return different responses from a single
GET /todos
intercept, you can place all prepared responses into an array, and then use Array.prototype.shift to return and remove the first item.it('returns list with more items on page reload', () => { const replies = [{ fixture: 'articles.json' }, { statusCode: 404 }] cy.intercept('GET', '/api/inbox', req => req.reply(replies.shift())) })
Javascript⚑
Javascript snippets⚑
-
const arr1 = ["Cecilie", "Lone"]; const arr2 = ["Emil", "Tobias", "Linus"]; const children = arr1.concat(arr2);
To join more arrays you can use:
const arr1 = ["Cecilie", "Lone"]; const arr2 = ["Emil", "Tobias", "Linus"]; const arr3 = ["Robin"]; const children = arr1.concat(arr2,arr3);
-
New: Check if a variable is not undefined.
feat(vue_snippets#Run function in background): Run function in backgroundif(typeof lastname !== "undefined") { alert("Hi. Variable is defined."); }
To achieve that you need to use the javascript method called
setInterval()
. It’s a simple function that would repeat the same task over and over again. Here’s an example:function myFunction() { setInterval(function(){ alert("Hello world"); }, 3000); }
If you add a call to this method for any button and click on it, it will print Hello world every 3 seconds (3000 milliseconds) until you close the page.
In Vue you could do something like:
<script> export default { data: () => ({ inbox_retry: undefined }), methods: { retryGetInbox() { this.inbox_retry = setInterval(() => { if (this.showError) { console.log('Retrying the fetch of the inbox') // Add your code here. } else { clearInterval(this.inbox_retry) } }, 30000) } },
You can call
this.retryGetInbox()
whenever you want to start running the function periodically. Oncethis.showError
isfalse
, we stop running the function withclearInterval(this.inbox_retry)
.