Skip to content

spec-box/sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

@spec-box/sync

Π’ этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ находится command line ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… трСбованиях, хранящСйся Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²ΠΎ внСшнюю Π±Π°Π·Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… трСбованиях Π΄ΠΎΠ»ΠΆΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² yml Ρ„Π°ΠΉΠ»Π°Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, описанном Π½ΠΈΠΆΠ΅.

Быстрый старт

  1. УстановитС ΠΏΠ°ΠΊΠ΅Ρ‚ @spec-box/sync ΠΈΠ· внСшнСго npm
    npm i @spec-box/sync --registry=https://registry.npmjs.org -D
  2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .tms.json:
    {
        "api": {
            "host": "http://localhost:5059",
            "project": "id"
        },
        "yml": {
            "files": [
                "tests/unit/**/*.unit.testpalm.yml"
            ]
        }
    }
  3. ЗапуститС Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…
    npx spec-box validate
  4. ЗапуститС Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ
    npx spec-box sync
    ΠŸΠ΅Ρ€Π΅Π΄Π°Π² ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --message, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° для понимания контСкста Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ VCS.
    npx spec-box sync --message="my commit message"
  5. ЗапуститС Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ статистики ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Jest (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
    npx spec-box upload-stat
    Π’ Π±Π°Π·Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹: Π΄Π°Ρ‚Π° ΠΈ врСмя запуска тСстов, суммарноС количСство тСстов, суммарноС врСмя выполнСния (ΠΊΠ°ΠΊ Ссли Π±Ρ‹ тСсты Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅)

ОписаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π€ΠΎΡ€ΠΌΠ°Ρ‚ yml

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ yml Ρ„Π°ΠΉΠ» описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΈΡ‡ΠΈ (цСлостного Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Для Ρ„ΠΈΡ‡ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ: ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°Ρ‚ΡΡŒΡ Π½Π° Π½Π΅Π΅), Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ‚Π°-информация (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹) ΠΈ список Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² Π³Ρ€ΡƒΠΏΠΏΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания Π€Π’ Π² yml Ρ„Π°ΠΉΠ»Π΅:

feature: Главная страница    # понятноС для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ
description: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания  # описаниС Ρ„ΠΈΡ‡ΠΈ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

code: home-page              # ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ (Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°) ΠΊΠΎΠ΄ Ρ„ΠΈΡ‡ΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π½Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ
type: Functional             # Ρ‚ΠΈΠΏ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния Functional ΠΈ Visual)

# список Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ (ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅), ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² Π³Ρ€ΡƒΠΏΠΏΡ‹
specs-unit:
  ΠŸΡ€ΠΎΠΌΠΎ-Π±Π»ΠΎΠΊ:
    - assert: ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ "ΠΊΠ°Ρ€ΡƒΡΠ΅Π»ΡŒ" со слайдами
      description: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания  #  (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)
    - assert: Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слайда отобраТаСтся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, описаниС ΠΈ Ρ„ΠΎΡ‚ΠΎ, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΡˆΠ»ΠΈ с бэкСнда

  Π‘Π»ΠΎΠΊ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹:
    - assert: ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ количСство ΠΈ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅
    - assert: ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ° "ΠžΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·", ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° страницу оформлСния Π·Π°ΠΊΠ°Π·Π°

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΈΡ‡ΠΈ

ПолС code Ρƒ Ρ„ΠΈΡ‡ΠΈ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ„ΠΈΡ‡Ρƒ.

Π’Π°ΠΆΠ½ΠΎ: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля code ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ английскиС Π±ΡƒΠΊΠ²Ρ‹, Ρ†ΠΈΡ„Ρ€Ρ‹, Π·Π½Π°ΠΊΠΈ - (дСфис) ΠΈ _ (ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅) ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹.

Π’ названиях ΠΈ описаниях Ρ„ΠΈΡ‡Π΅ΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ (поля feature, assert ΠΈ description) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΈΡ‡ΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π°Ρ‡Π°Π»ΠΎ Π·Π½Π°ΠΊ $. ΠŸΡ€ΠΈ запускС Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠΎΠΌΠ°Π½Π΄Π° validate) Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ссылок.

НапримСр:

feature: Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° оформлСния Π·Π°ΠΊΠ°Π·Π°
code: checkout-page

# Π² описании ссылка Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΈΡ‡Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ 'product-card'
description: ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° эту страницу с ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° $product-card

specs-unit:
  Π’Ρ‹Π±ΠΎΡ€ адрСса доставки:
      # Π² тСкстС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ трСбования ссылка Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΠΈΡ‡Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ 'address-dialog'
    - assert: ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ "Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ адрСс" открываСтся Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Ρ‹Π±ΠΎΡ€Π° адрСса Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ $address-dialog

ΠœΠ΅Ρ‚Π°-информация

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поля code для сущностСй ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€” Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поля code для Ρ„ΠΈΡ‡Π΅ΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ„Π°ΠΉΠ» .spec-box-meta.yml ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π½Π΅ΠΌ ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для Ρ„ΠΈΡ‡Π΅ΠΉ: Π°Ρ‚Ρ€Π±ΡƒΡ‚Ρ‹ ΠΈ порядок Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ для просмотра Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. Для этого ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ .tms.json Π² ΠΏΠΎΠ»Π΅ yml => metaPath

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Ρ„ΠΈΡ‡Π΅ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ„ΠΈΡ‡ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π½ΠΈΠΌ список Ρ„ΠΈΡ‡Π΅ΠΉ.

Π—Π°Π΄Π°ΠΉΡ‚Π΅ список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ .spec-box-meta.yml Π² ΠΏΠΎΠ»Π΅ attributes. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±Π°Ρ‚Π° ΠΈ значСния Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°) ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст (для просмотра Π² интСрфСйсС):

attributes:
  - code: attr1
    title: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° 1
    values:
      - code: cats
        title: Кошки
      - code: dogs
        title: Π‘ΠΎΠ±Π°ΠΊΠΈ
  - code: attr2
    title: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° 2
    values:
      - code: predators
        title: Π₯ΠΈΡ‰Π½ΠΈΠΊΠΈ
      - code: herbivores
        title: ВравоядныС

ПослС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для Ρ„ΠΈΡ‡Π΅ΠΉ Π² ΠΏΠΎΠ»Π΅ definitions:

feature: ΠŸΡ€ΠΈΠΌΠ΅Ρ€ названия Ρ„ΠΈΡ‡ΠΈ
code: example-code

# список Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
# ...

# список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„ΠΈΡ‡ΠΈ
definitions:
  attr1:        # ΠΊΠΎΠ΄ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°
    - dogs      # ΠΊΠΎΠ΄ значСния
  attr2:
    - predators # для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
    - herbivores

Если Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ для Ρ„ΠΈΡ‡ΠΈ ΠΊΠΎΠ΄ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ описан Π² Ρ„Π°ΠΉΠ»Π΅ .spec-box-meta.yml, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС. Если Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ для Ρ„ΠΈΡ‡ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ описано Π² .spec-box-meta.yml, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ Π² Π±Π°Π·Ρƒ Π€Π’, Π² качСствС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ тСкста Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ΄ значСния.

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ„ΠΈΡ‡Π΅ΠΉ ΠΏΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„ΠΈΡ‡Π΅ΠΉ ΠΏΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ для просмотра Π² структурированном Π²ΠΈΠ΄Π΅. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² .spec-box-meta.yml ΠΏΠΎΠ»Π΅ trees. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст для просмотра Π² интСрфСйсС) ΠΈ список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ:

attributes:
  # ... список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²
trees:
  - code: ui-structure              # ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄
    title: Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΠΏΠΎ страницам    # Π½Π°Π·Π²Π°Π½ΠΈΠ΅
    group-by:                       # порядок Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ
      - page
      - component

АвтоматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° automationState

ВмСстС с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… трСбованиях ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² автотСстов Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ автоматичСскоС вычислСниС ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° automationState. На Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ jest ΠΈ storybook.

Jest

ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, запустив jest с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ --json, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

jest --json --outputFile=jest-report.json

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ Π€Π’ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· ΠΎΡ‚Ρ‡Π΅Ρ‚Π° jest, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΡΠ΅ΠΊΡ†ΠΈΡŽ "jest":

{
    // ...
    "jest": {
        // ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов
        "reportPath": "jest-report.json",

        // сСгмСнты ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° для сопоставлСния автотСстов с Π€Π’
        "keys": ["featureTitle", "groupTitle", "assertionTitle"]
    }

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π€Π’, описанного Π² yml Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π±ΡƒΠ΄Π΅Ρ‚ сформирован ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° основС поля "keys". Если Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ jest Π΅ΡΡ‚ΡŒ тСст, ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ совпадаСт с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π€Π’, Ρ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° этого Π€Π’ β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°.

НапримСр, Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ yml Ρ„Π°ΠΉΠ» с содСрТимым, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΈ ΠΏΠΎΠ»Π΅ "keys" Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "jest" ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ["featureTitle", "groupTitle", "assertionTitle"], Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ тСст Π±ΡƒΠ΄Π΅Ρ‚ сопоставлСн с Π€Π’ "ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ количСство ΠΈ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅":

describe('Главная страница', () => {
    describe('Π‘Π»ΠΎΠΊ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹', () => {
        test('ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ количСство ΠΈ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅', () => {
            // ...
        });
    });
});

Π’ качСствС частСй ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° допустимо ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния:

  • "featureTitle" β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ
  • "featureCode" β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΈΡ‡ΠΈ
  • "groupTitle" β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π€Π’
  • "assertionTitle" β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π€Π’
  • "filePath" β€” ΠΏΡƒΡ‚ΡŒ ΠΊ yml Ρ„Π°ΠΉΠ»Ρƒ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • "fileName" β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ yml Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ (ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа .)
  • @<attribute> β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ значСния)
  • $<attribute> β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎ-понятноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅)

Storybook

Если Π² сторибукС написана история, Ρ‚ΠΎ считаСм, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° провСряСтся ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π½Ρ‹ΠΌ тСстом ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π€Π’ считаСм Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ. Π’ качСствС Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» index.json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ формируСтся сторибуком ΠΏΡ€ΠΈ сборкС ΠΈ содСрТит список историй. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Storybook v7 ΠΈ Π²Ρ‹ΡˆΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ Π€Π’ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· storybook, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΡΠ΅ΠΊΡ†ΠΈΡŽ "storybook":

{
    // ...
    "storybook": {
        // ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ index.json, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Π±ΠΈΠ»Π΄Π΅ сторибука
        "indexPath": "index.json",

        // сСгмСнты ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° для сопоставлСния автотСстов с Π€Π’
        "keys": ["featureTitle", "groupTitle", "assertionTitle"]
    }

ПолС "keys" Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ jest. Если Π² index.json Π΅ΡΡ‚ΡŒ стори, ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π΄Π΅Ρ€Π΅Π²Π΅ сторСй совпадаСт с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π€Π’, Ρ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° этого Π€Π’ β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π°.

НапримСр, Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ yml Ρ„Π°ΠΉΠ» с содСрТимым, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΈ ΠΏΠΎΠ»Π΅ "keys" Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "storybook" ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ["featureTitle", "groupTitle", "assertionTitle"], Ρ‚ΠΎ указанная Π½ΠΈΠΆΠ΅ история Π±ΡƒΠ΄Π΅Ρ‚ сопоставлСна с Π€Π’ "ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ количСство ΠΈ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅":

import type { Meta, StoryObj } from '@storybook/react';
import { Cart } from './Cart';

export default {
  title: 'Главная страница/Π‘Π»ΠΎΠΊ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹',
  component: Cart,
} as Meta;

export const Default: StoryObj<typeof Cart> = {
  name: 'ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ количСство ΠΈ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅',
  render: () => <Cart />,
};

Если Π²Ρ‹ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π² настройках ΠΏΠΎΠ»Π΅ publicUrl, Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π€Π’, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π² сторибукС написана история, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π° ссылка Π½Π° эту ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°

НиТС ΡƒΠΊΠ°Π·Π°Π½Ρ‹ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°:

{
    "projectPath": "/aaa/bbb", // ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ
    // настройки Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ
    "api": {
        "host": "http://localhost:5059",
        "project": "id"
    },
    // ΡƒΡ€ΠΎΠ²Π½ΠΈ ошибок: error / warning / info / off
    "validation": {
        // ссылка Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΠΈΡ‡Ρƒ
        "feature-missing-link": "error",

        // тСст, Π½Π΅ описанный Π² yml
        "jest-unused": "error"
    }
    "yml": {
        // ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с ΠΌΠ΅Ρ‚Π°-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ
        "metaPath": "./configs/spec-box-meta.yml",

        // настройки хранСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… трСбоваинях Π² yml
        "files": [
            // ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΏΡƒΡ‚Π΅ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
            "tests/unit/**/*.unit.testpalm.yml"
        ]
    },
    // настройки для сопоставлСния Π€Π’ с ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ jest
    "jest": {
        "reportPath": "jest-report.json", // ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ тСстов
        "keys": [ // сСгмСнты ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° для сопоставлСния автотСстов с Π€Π’
            "featureTitle",
            "$sub-component",
            "groupTitle",
            "assertionTitle"
        ]
    }
    // настройки для сопоставлСния Π€Π’ с историями storybook
    "storybook": {
        "indexPath": "index.json", // ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ index.json, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Π±ΠΈΠ»Π΄Π΅ сторибука
        "publicUrl": "https://my-dev-domain/storybook", // Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ стрибуку, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ
        "keys": [ // сСгмСнты ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° для сопоставлСния историй ΠΈΠ· storybook с Π€Π’
            "featureTitle",
            "$sub-component",
            "groupTitle",
            "assertionTitle"
        ]
    }
}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages