no-unnecessary-waiting.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict'
  2. const rule = require('../../../lib/rules/no-unnecessary-waiting')
  3. const RuleTester = require('eslint').RuleTester
  4. const ruleTester = new RuleTester()
  5. const errors = [{ messageId: 'unexpected' }]
  6. const parserOptions = { ecmaVersion: 6 }
  7. ruleTester.run('no-unnecessary-waiting', rule, {
  8. valid: [
  9. { code: 'foo.wait(10)', parserOptions },
  10. { code: 'cy.wait("@someRequest")', parserOptions },
  11. { code: 'cy.wait("@someRequest", { log: false })', parserOptions },
  12. { code: 'cy.wait("@someRequest").then((xhr) => xhr)', parserOptions },
  13. { code: 'cy.wait(["@someRequest", "@anotherRequest"])', parserOptions },
  14. { code: 'cy.clock(5000)', parserOptions },
  15. { code: 'cy.scrollTo(0, 10)', parserOptions },
  16. { code: 'cy.tick(500)', parserOptions },
  17. { code: 'const someRequest="@someRequest"; cy.wait(someRequest)', parserOptions, errors },
  18. { code: 'function customWait (alias = "@someRequest") { cy.wait(alias) }', parserOptions, errors },
  19. { code: 'const customWait = (alias = "@someRequest") => { cy.wait(alias) }', parserOptions, errors },
  20. { code: 'function customWait (ms) { cy.wait(ms) }', parserOptions, errors },
  21. { code: 'const customWait = (ms) => { cy.wait(ms) }', parserOptions, errors },
  22. // disable the eslint rule
  23. {
  24. code: `
  25. cy.wait(100); // eslint-disable-line no-unnecessary-waiting
  26. `,
  27. parserOptions,
  28. },
  29. {
  30. code: `
  31. /* eslint-disable-next-line no-unnecessary-waiting */
  32. cy.wait(100)
  33. `,
  34. parserOptions,
  35. },
  36. {
  37. code: `
  38. /* eslint-disable no-unnecessary-waiting */
  39. cy.wait(100)
  40. /* eslint-enable no-unnecessary-waiting */
  41. `,
  42. parserOptions,
  43. },
  44. ],
  45. invalid: [
  46. { code: 'cy.wait(0)', parserOptions, errors },
  47. { code: 'cy.wait(100)', parserOptions, errors },
  48. { code: 'cy.wait(5000)', parserOptions, errors },
  49. { code: 'const someNumber=500; cy.wait(someNumber)', parserOptions, errors },
  50. { code: 'function customWait (ms = 1) { cy.wait(ms) }', parserOptions, errors },
  51. { code: 'const customWait = (ms = 1) => { cy.wait(ms) }', parserOptions, errors },
  52. { code: 'cy.get(".some-element").wait(10)', parserOptions, errors },
  53. { code: 'cy.get(".some-element").contains("foo").wait(10)', parserOptions, errors },
  54. { code: 'const customWait = (ms = 1) => { cy.get(".some-element").wait(ms) }', parserOptions, errors },
  55. ],
  56. })