Skip to content

itwillwork/cypress-reflex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

38 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

[WIP] cypress-reflex

Для Ρ‡Π΅Π³ΠΎ создан

Π₯ΠΎΡ‡Ρƒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ простой e2e тСст, ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈ Ρ‚Π΅ΠΌ самым Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ интСрфСйса.

НапримСр:

Π€ΠΎΡ€ΠΌΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ возрастом, с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ submit (Π΄Π΅Ρ€Π³Π°ΡŽΡ‰Π°Ρ запрос).

МоТно вмСсто ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ: " ", " name ", " name🀑 "

ВмСсто возраста ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ: "0", "-1", "--1", "e", " {age} ", "notnumber"

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ получаСтся: 1 + 3 + 6 = 10 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² заполнСния Ρ„ΠΎΡ€ΠΌΡ‹.

ΠšΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ хочСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ(

Π•Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: image

Для всСх тСстов хочСтся:

  1. Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ выглядит интСрфСйс (Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ рСгрСсс, Ρ‡Π΅Ρ€Π΅Π· сравнСниС ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ²);
  2. Π€ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ отправляСтся ΠΏΡ€ΠΈ этом Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ запроса (body, query, url, headers ΠΈ Ρ‚.ΠΏ.);

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ:

  1. Нам Π½Π΅ всСгда Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отслСТиваСм Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ‡Π΅Ρ€Π΅Π· ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈ слСпки запросов.
  2. ПишСм тСсты исходя ΠΈΠ· Π΄ΠΈΠ·Π°ΠΉΠ½ систСмы. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°Π΅ΠΌ интСрфСйс Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, пишСм ΠΊΠ°ΠΊΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π΅ΡΡ‚ΡŒ, ΠΈ ΠΈΠ· этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ тСст прСвращаСтся Π²ΠΎ мноТСство. image

Quick start

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ
npm i --save-dev cypress-reflex
  1. Π’ Ρ„Π°ΠΉΠ» cypress/support/e2e.js Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строку:
import "cypress-reflex/cypress-integration/commands";
  1. Π’ Ρ„Π°ΠΉΠ» cypress.config.js Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ строки:
const { getCypressReflexEnv } = require("cypress-reflex/cypress-integration/env");
const { registrateCypressReflexTasks } = require("cypress-reflex/cypress-integration/tasks");

// ...

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // ...

      registrateCypressReflexTasks(on, config);

      // ...
      return {
        ...config,
        ...getCypressReflexEnv(config),
      }
    },
  },
});
  1. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ

  2. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² package.json ΠΊΠΎΠΌΠΌΠ°Π½Π΄Ρƒ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ тСстов

"generate-tests": "rm -rf cypress/e2e/generated && cypress-reflex --cases=cypress-reflex-cases --commands=cypress-reflex-cases/commands.js --output=cypress/e2e/generated"

Road map

  • Π’ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ prettier Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Π² сам ΠΊΠΎΠ΄
  • ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ cypress-reflex => cypress-reflex-cli
  • ΠΠ°ΠΊΠΈΠ΄Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published