assertion-before-screenshot.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. 'use strict'
  2. const rule = require('../../../lib/rules/assertion-before-screenshot')
  3. const RuleTester = require('eslint').RuleTester
  4. const ruleTester = new RuleTester()
  5. const errors = [{ messageId: 'unexpected' }]
  6. const parserOptions = { ecmaVersion: 6 }
  7. ruleTester.run('assertion-before-screenshot', rule, {
  8. valid: [
  9. { code: 'cy.get(".some-element"); cy.screenshot();', parserOptions },
  10. { code: 'cy.get(".some-element").should("exist").screenshot();', parserOptions },
  11. { code: 'cy.get(".some-element").should("exist").screenshot().click()', parserOptions, errors },
  12. { code: 'cy.get(".some-element").should("exist"); if(true) cy.screenshot();', parserOptions },
  13. { code: 'if(true) { cy.get(".some-element").should("exist"); cy.screenshot(); }', parserOptions },
  14. { code: 'cy.get(".some-element").should("exist"); if(true) { cy.screenshot(); }', parserOptions },
  15. { code: 'const a = () => { cy.get(".some-element").should("exist"); cy.screenshot(); }', parserOptions, errors },
  16. { code: 'cy.get(".some-element").should("exist").and("be.visible"); cy.screenshot();', parserOptions },
  17. { code: 'cy.get(".some-element").contains("Text"); cy.screenshot();', parserOptions },
  18. ],
  19. invalid: [
  20. { code: 'cy.screenshot()', parserOptions, errors },
  21. { code: 'cy.visit("somepage"); cy.screenshot();', parserOptions, errors },
  22. { code: 'cy.custom(); cy.screenshot()', parserOptions, errors },
  23. { code: 'cy.get(".some-element").click(); cy.screenshot()', parserOptions, errors },
  24. { code: 'cy.get(".some-element").click().screenshot()', parserOptions, errors },
  25. { code: 'if(true) { cy.get(".some-element").click(); cy.screenshot(); }', parserOptions, errors },
  26. { code: 'cy.get(".some-element").click(); if(true) { cy.screenshot(); }', parserOptions, errors },
  27. { code: 'cy.get(".some-element"); function a() { cy.screenshot(); }', parserOptions, errors },
  28. { code: 'cy.get(".some-element"); const a = () => { cy.screenshot(); }', parserOptions, errors },
  29. ],
  30. })