---
type: test-plan
work_item_id: ET-002
title: "Test Plan: Чекбокс POI"
version: 1
status: approved
created_at: 2026-05-20
authors:
  - "agent:analyst"
---

tests:
  - id: TP-01
    type: unit
    description: "onPoiCheckbox() устанавливает visibility слоёв"
    steps:
      - "Mock map.getLayer() → true"
      - "Mock map.setLayoutProperty()"
      - "Установить checkbox.checked = false"
      - "Вызвать onPoiCheckbox()"
    expected:
      - "setLayoutProperty('poi-circles', 'visibility', 'none') вызван"
      - "setLayoutProperty('poi-labels', 'visibility', 'none') вызван"
      - "localStorage.setItem('poi-visible', '0') вызван"
      - "layerState.poi === false"

  - id: TP-02
    type: unit
    description: "onPoiCheckbox() показывает слои при checked=true"
    steps:
      - "Mock map.getLayer() → true"
      - "Установить checkbox.checked = true"
      - "Вызвать onPoiCheckbox()"
    expected:
      - "setLayoutProperty('poi-circles', 'visibility', 'visible') вызван"
      - "setLayoutProperty('poi-labels', 'visibility', 'visible') вызван"
      - "localStorage.setItem('poi-visible', '1') вызван"
      - "layerState.poi === true"

  - id: TP-03
    type: unit
    description: "Восстановление состояния при загрузке — POI скрыты"
    steps:
      - "localStorage.setItem('poi-visible', '0')"
      - "Вызвать функцию инициализации POI"
    expected:
      - "checkbox.checked === false"
      - "layerState.poi === false"
      - "Слои скрыты"

  - id: TP-04
    type: unit
    description: "Восстановление состояния при загрузке — POI видны (default)"
    steps:
      - "localStorage не содержит ключ poi-visible"
      - "Вызвать функцию инициализации POI"
    expected:
      - "checkbox.checked === true"
      - "layerState.poi === true"

  - id: TP-05
    type: e2e
    description: "Чекбокс POI виден в попапе рельефа"
    steps:
      - "Открыть карту в браузере"
      - "Нажать кнопку «Рельеф»"
    expected:
      - "В попапе виден чекбокс с текстом «POI»"
      - "Чекбокс расположен после «Тропы», отделён линией"

  - id: TP-06
    type: e2e
    description: "Переключение POI скрывает/показывает маркеры"
    steps:
      - "Открыть карту, дождаться загрузки POI"
      - "Открыть попап рельефа"
      - "Снять чекбокс POI"
      - "Убедиться что маркеры исчезли"
      - "Установить чекбокс POI"
      - "Убедиться что маркеры появились"
    expected:
      - "Маркеры POI скрываются и появляются в соответствии с чекбоксом"

  - id: TP-07
    type: e2e
    description: "Состояние POI сохраняется после перезагрузки"
    steps:
      - "Открыть карту"
      - "Снять чекбокс POI"
      - "Перезагрузить страницу"
      - "Открыть попап рельефа"
    expected:
      - "Чекбокс POI снят"
      - "Маркеры POI не отображаются"

  - id: TP-08
    type: integration
    description: "Чекбокс POI не влияет на другие слои"
    steps:
      - "Включить Тени рельефа и Грунтовки"
      - "Снять чекбокс POI"
    expected:
      - "Тени рельефа остаются видимыми"
      - "Грунтовки остаются видимыми"
      - "Только POI скрыты"

  - id: TP-09
    type: e2e
    description: "Мобильная доступность чекбокса"
    steps:
      - "Открыть карту на мобильном viewport (375px)"
      - "Открыть попап рельефа"
      - "Тапнуть чекбокс POI"
    expected:
      - "Чекбокс нажимается без проблем"
      - "Touch target достаточный (≥ 44px)"
