Skip to content

Simulation

Simulation сохраняет описание подмен запросов для одной Composition. Документ доступен в разделе Инфраструктура → Симуляции. Сейчас можно редактировать, проверять и переносить это описание; выполнение симуляций и генерация mock-данных не подключены.

Source

ts
defineSimulation({
  target: composition('aodb-initialization'),
  overrides: {
    runtimes: {
      scheduleSandbox: {
        runtimes: {
          query: {
            request: mockRequest({
              seed: 'schedule-demo',
              arrays: {
                items: 50,
              },
            }),
          },
        },
      },
    },
  },
})

target выбирает Composition по identity. scheduleSandbox и query — aliases, уже объявленные в её дереве runtimes. Вложенность повторяет Composition и scopes. Simulation не создаёт новые runtime-узлы и не меняет props, activation, Store или Stream.

request: mockRequest(...) допустим только у Query. seed — необязательная строка. arrays — необязательный объект: ключ обозначает массив в корневом ответе Query, значение — неотрицательное целое количество элементов. Например, items: 50, 'items[].children': 3; для корневого массива используется ''.

Контракт ответа и подсказки

Чтобы получить пути массивов, Query должен явно описывать корневой ответ:

ts
outputs: {
  response: output()
    .from(response())
    .contract(field(ScheduleResponse)),
}

Редактор предлагает Composition, её вложенные aliases и пути массивов из Type. Контракт отдельного response('items') не описывает весь ответ. Если корневого контракта нет, он неоднозначен или его Type недоступен, диагностика объясняет причину. Редактор не подставляет предполагаемый тип. Динамические ключи record не предлагаются как статические пути.

Редактирование и хранение

Новый документ содержит пустой target и пустые overrides. Source можно сохранить незавершённым: ошибки будут показаны на вкладке диагностики. После исправления ссылок compiler строит декларативный artifact с зависимостями от Composition, Query и Type. Изменение зависимостей обновляет диагностику и делает старый artifact неактуальным до пересборки.

Несохранённый черновик сохраняется при переключении вкладок. После перезагрузки страницы вкладка восстанавливается с серверной версией Source, поэтому перед перезагрузкой сохраните нужные изменения.

Доступны обычные действия документа: создание, переименование, дублирование, перемещение в папку, история revisions, удаление и восстановление. Экспорт и импорт выполняются backend вместе с остальным workspace; Simulation сохраняет sourceVersion: 1. Полный snapshot использует схему 2. Файл схемы 1 нужно повторно экспортировать после обновления исходного backend.

Открытие и компиляция Simulation не выполняют Query и не вызывают Mock-сервис. В редакторе нет кнопки запуска.