Mon objectif est d'écrire un test de cyprès qui vérifie si la largeur d'un élément est inférieure ou égale à 355px.
J'ai ce code, mais cela ne vérifie que la dimension exacte:
cy
.get('.mat-dialog-container:visible')
.should('have.css', 'width', '355px')
Tout ce qui peut être automatisé, devrait être (à moins que l'utilité attendue de cela soit dépassée par le coût de la mise en œuvre et de la maintenance, bien sûr ), je pense donc que l'automatisation des tests de RD est une bonne idée. Si la vérification des dimensions du conteneur est la voie à laquelle il est une question ouverte (on pourrait dire que vous devriez plutôt vérifier que les éléments attendus qui doivent être cachés, sont cachés et des éléments qui doivent être visibles, sont visibles et si l'interface utilisateur fonctionne comme attendu).
Hélas, voici comment réaliser ce que vous voulez.
J'irais avec jQuery's outerWidth
Ce que vous voulez généralement vérifier au lieu de width
(au cas où il y a padding
ou border
):
cy.get(selector).invoke('outerWidth').should('be.lt', 355);
Si vous souhaitez vraiment affirmer la valeur CSS calculée réelle, vous pouvez en effet utiliser jQuery css
assistant (ou utilisation window.getComputedStyle
, ça n'a pas vraiment d'importance):
cy.get(selector).invoke('css', 'width')
.then(str => parseInt(str)).should('be.lt', 355);
// or use jQuery.prototype.width (I'm not sure if there's any meaningful
// difference, but there might be --- better check the docs)
cy.get(selector).invoke('width').should('be.lt', 355');