← Главная
← v1 (24.03)

🧪 DS-15 — Асинхронное копирование автоматизаций (v2)

Пушер настроен на стейдже. Ретест: автосмена статуса без F5.

30 марта 2026 · Ветка: deploy-preview-915 · API: api-1080.review · Юзер: test@chatplace.io
Jira: DS-15 · Assignee: Igor Plotnikov · Pusher: ✅ настроен (30.03)

0 pass 0 fail / 0
Окружение:
Frontend: deploy-preview-915--chatplace-front.netlify.app
Backend: api-1080.review.chatplace.io
Login URL: https://deploy-preview-915--chatplace-front.netlify.app/auth/sign-in/?preview-api-core=https://api-1080.review.chatplace.io/
Юзер: test@chatplace.io / test@chatplace.io
Email login (НЕ Google)

0. Подготовка

Перед тестированием:
  1. Открыть Login URL → Sign in with Email → test@chatplace.io / test@chatplace.io
  2. Перейти в Автоматизации (левое меню → Automations)
  3. Убедиться, что есть хотя бы одна большая автоматизация (~6+ блоков). Маленькие копируются мгновенно — не увидим статус 7
  4. Если большой нет — создать: открыть конструктор → добавить 6-8 блоков (текст, условие, задержка, и т.д.) → сохранить
  5. Открыть DevTools → Console (для наблюдения Pusher-событий)

1. Базовое копирование функционал

Копирование маленькой автоматизации

В списке автоматизаций → «⋯» (три точки) → «Дублировать» → модалка с именем (суффикс " Copy") + выбор бота
Нажать «Дублировать» → дубликат появляется в списке сразу (без F5)
Дубликат появляется в задизейбленном виде (выключен/пауза)
Имя дубликата = оригинал + " Copy" (или " Copy Copy" если уже есть копия)
Открыть конструктор дубликата → все блоки скопировались корректно
Интерфейс НЕ заблокирован после нажатия «Дублировать» — можно навигировать, открывать другие автоматизации

2. Статус 7 — «Копируется» UI блокировка

Важно: Статус 7 виден только на большой автоматизации (~6+ блоков). Маленькая копируется мгновенно.
Как воспроизвести:
  1. Выбрать большую автоматизацию (~6+ блоков)
  2. Нажать Дублировать
  3. Сразу (за 1-2 сек) кликнуть на дубликат в списке → открыть конструктор
🔍 Как проверить статус 7 в Network:
  1. Открыть DevTools → Network → фильтр Fetch/XHR
  2. Нажать «Дублировать» на большой автоматизации
  3. В Network найти запрос async-copy (POST)
  4. Кликнуть на него → вкладка Response
  5. В ответе найти поле "status": 7 — это статус «Копируется»
  6. Также можно найти запрос списка автоматизаций (GET) и увидеть дубликат со status: 7
  7. После завершения копирования — обновить список (или дождаться Pusher) → статус сменится на 0 (пауза)
В Network → Response запроса async-copy виден "status": 7 НОВОЕ
В списке автоматизаций (GET) дубликат приходит со status: 7 пока копируется НОВОЕ
После завершения копирования статус в API меняется на 0 (пауза) НОВОЕ
Дубликат большой автоматизации показывает статус «Копируется» / визуальный индикатор в списке
Дубликат создаётся в неактивном статусе (пауза) — конструктор при этом доступен для редактирования
Блоки дубликата можно редактировать, добавлять и удалять — ничего не заблокировано
Навигация по остальному интерфейсу работает (можно перейти к другим автоматизациям)

3. Pusher — автообновление без F5 pusher КЛЮЧЕВОЕ

Главный тест! Раньше пушер не работал на стейдже — дубликат навсегда застревал в «Копируется». Теперь (30.03) Игорь настроил пушер. Нужно подтвердить.
Как проверить:
  1. Открыть DevTools → Console (чтобы видеть Pusher-события)
  2. Дублировать большую автоматизацию
  3. НЕ обновлять страницу! Просто ждать
  4. Наблюдать: дубликат должен автоматически перейти из «Копируется» в нормальное состояние
После копирования большой автоматизации дубликат автоматически меняет статус с «Копируется» на нормальный (без F5!)
В DevTools Console видно Pusher-событие о завершении копирования
Если конструктор дубликата был открыт — статус автоматически обновляется (без F5)
После автообновления конструктор дубликата полностью рабочий — можно редактировать блоки
В списке автоматизаций дубликат тоже обновляет статус без F5

4. Параллельное копирование edge case

Как проверить:
  1. Дублировать первую большую автоматизацию
  2. Сразу (не дожидаясь завершения) Дублировать вторую автоматизацию
  3. Наблюдать за обеими копиями
Обе копии появляются в списке
Обе копии завершают процесс копирования (статус меняется у обеих)
Ни одна из копий не «зависает» визуально в статусе «Копируется»
Содержимое обеих копий корректное (блоки на месте)

5. Триггеры запуска by design

Триггеры запуска не копируются — это ожидаемое поведение, чтобы не было конфликтов (подтвердил Антон Перевощиков, 25.03).
У оригинала дефолтные триггеры → в дубликате триггеры отсутствуют (не копируются)
Можно вручную добавить триггер в дубликат

6. Содержимое копии функционал

Все блоки оригинала скопированы (тексты, условия, задержки, действия)
Связи между блоками (стрелки) сохранились корректно
Текст в блоках идентичен оригиналу
Настройки блоков (условия, переменные, таймеры) скопированы
Дубликат создан на паузе (не активен) — не конфликтует с оригиналом

7. Граничные случаи edge case

Копирование пустой автоматизации (0 блоков) — работает, дубликат создаётся
Копирование копии (Дублировать → Дублировать копии) — работает
Обновить страницу (F5) во время копирования → дубликат виден, статус корректный
Уйти со страницы и вернуться во время копирования → дубликат виден
Имя дубликата можно изменить в модалке перед копированием
Можно выбрать другого бота для копии → копия привязана к выбранному боту