# Symulator

{% hint style="info" %}
Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.
{% endhint %}

Dzięki symulatorowi wniosków mamy możliwość otwarcia formularza o zdefiniowanych przez nas parametrach:

* wybranym środowisku,
* identyfikatorze użytkownika,
* specyficznych parametrach wejściowych,
* wybranym kanale: App (RWD), Native, IB inline, IB popup lub w nowej karcie przeglądarki.

W kanale App i Native jest również możliwość wskazania konkretnego urządzenia do symulacji. Dodatkowo dla Native prezentowane są wywołania API na danym wniosku.

## Uruchomienie symulatora wniosków <a href="#symulatorwnioskow-uruchomieniesymulatorawnioskow" id="symulatorwnioskow-uruchomieniesymulatorawnioskow"></a>

Aby uruchomić symulator wniosków, należy wybrać z paska nawigacyjnego Eximee Designer opcję **Symulator**.

### Ustawienie parametrów wejściowych <a href="#symulatorwnioskow-ustawienieparametrowwejsciowych" id="symulatorwnioskow-ustawienieparametrowwejsciowych"></a>

Formularz znajdujący się na górze modułu pozwala uruchomić wniosek z wybranymi parametrami.&#x20;

1. Przycisk pokazujący/ukrywający formularz parametrów wejściowych.
2. **Środowisko** - środowisko, na którym znajduje się testowany wniosek.
3. **Wniosek** - nazwa testowanego wniosku, w przypadku pustej wartości w symulatorze wyświetlona zostanie lista dostępnych wniosków (dla kanałów App, Native, Nowa Karta) lub domyślny, predefiniowany wniosek (dla kanałów IB inline i IB popup).
4. **Identyfikator użytkownika** - pozwala na wpisanie identyfikatora użytkownika, dla którego zostanie pobrany klucz sesji i dodany do URL w momencie pokazywania symulatora. W przypadku pustego pola klucz nie zostanie pobrany.
5. **Parametry** ścieżki (query parameters) - pole pozwalające zdefiniować parametry, które będą doklejone do ścieżki (np. source=ib).
6. Przycisk **App** - uruchamia symulator w kanale desktop (app).
7. Przycisk **Native** - uruchamia symulator w kanale aplikacji natywnej.
8. Przycisk **IB inline** - uruchamia symulator w kanale IB inline.
9. Przycisk **IB popup** - uruchamia symulator w kanale IB popup.
10. Przycisk **Nowa Karta** - otwiera wniosek na wybranym środowisku w nowej karcie przeglądarki .
11. **Kanał**\* - szata, w jakiej ma zostać uruchomiony wniosek (opcja zależna od konfiguracji).

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2Fl7dy90qH1sqGkVNLcUjG%2Fimage.png?alt=media&#x26;token=00a0be3e-1fa1-4bf5-9f4f-b3846adfd4a1" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Właściwości symulatora</em></p></figcaption></figure>

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FvBl5jimHrG5mQfAcxlmS%2Fimage.png?alt=media&#x26;token=3b6b1f7d-50b1-4e99-84ad-d2a471d2763e" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Właściwości symulatora z możliwością wyboru kanału</em></p></figcaption></figure>

### Wybór symulowanego urządzenia <a href="#symulatorwnioskow-wyborsymulowanegourzadzenia" id="symulatorwnioskow-wyborsymulowanegourzadzenia"></a>

Po wybraniu kanału uruchomienia wniosku, w lewym dolnym rogu  ekranu pojawi się przycisk pozwalający wybrać symulowane urządzenie (12). Zmiana urządzenia powoduje dostosowanie wymiarów wniosku do wymiarów wybranego urządzenia. Domyślnie symulowany jest Tryb Desktop dla kanałów App, IB Inline, IB Popup, natomiast dla kanału Native domyślnie symulowany jest iPhone X.

### Podgląd wywołań API <a href="#symulatorwnioskow-podgladwywolanapi" id="symulatorwnioskow-podgladwywolanapi"></a>

Po wybraniu innego niż desktop kanału uruchomienia wniosku, w prawym dolnym rogu zostanie wyświetlony panel **Wywołania API**. Prezentowane są w nim metody API wywoływane przez symulowaną aplikację.  Komponent można zwinąć klikając w pasek tytułowy. Przycisk z ikoną śmietnika na pasku tytułowym pozwala na wyczyszczenie treści komponentu.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FSUR9q8A6JFcv6R7JI37v%2Fimage.png?alt=media&#x26;token=6390e135-dc90-4243-ba6e-1b512a086af7" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Ekran wniosku po wybraniu kanału "Native"</em></p></figcaption></figure>

### Konfiguracja <a href="#symulatorwnioskow-konfiguracja" id="symulatorwnioskow-konfiguracja"></a>

Aby skonfigurować działanie symulatora należy przygotować plik w formacie JSON, który zawierać będzie opis dostępnym środowisk, szat i kanałów, w których możliwa będzie symulacja wniosków.

W ustawieniach Eximee Designer powinna znaleźć się ścieżka do pliku konfiguracyjnego, jako wartość parametru **form-starter.configurationPath**, np.:

```
form-starter.configurationPath=/etc/eximee/form-starter.json
```

Przykładowy plik konfiguracyjny:

<details>

<summary>Plik konfiguracyjny</summary>

```
{
  "showChannels": false,
  "channels": [
    {
      "name": "app",
      "formModes": [
        {
          "name": "app",
          "label": "App",
          "icon": "desktop_windows"
        },
        {
          "name": "mobile",
          "label": "Native",
          "icon": "phone_iphone"
        },
        {
          "name": "inline",
          "label": "IB inline",
          "icon": "featured_play_list_outlined"
        },
        {
          "name": "popup",
          "label": "IB popup",
          "icon": "flip_to_front"
        },
        {
          "name": "newTab",
          "label": "Nowa karta",
          "icon": "open_in_new"
        }
      ],
      "defaultChannel": true
    },
    {
      "name": "form",
      "formModes": [
        {
          "name": "app",
          "label": "App",
          "icon": "desktop_windows"
        }
      ]
    }
  ],
  "environments": [
    {
      "displayName": "Dev bank",
      "url": "https://pl.dev.bank.eximee.consdata.local"
    },
    {
      "displayName": "Dev bank CZ",
      "url": "https://cz.dev.bank.eximee.consdata.local"
    },
    {
      "displayName": "Mandarynka",
      "url": "https://pl.mandarynka.eximee.consdata.local"
    },
    {
      "displayName": "Mandarynka RREV",
      "url": "https://pl-rrev.mandarynka.eximee.consdata.local"
    },
    {
      "displayName": "Mandarynka CZ",
      "url": "https://cz.mandarynka.eximee.consdata.local"
    },
    {
      "displayName": "Mandarynka SK",
      "url": "https://sk.mandarynka.eximee.consdata.local"
    }
  ]
}
```

</details>

gdzie:

* **showChannels** - atrybut określający czy symulator powinien prezentować listę rozwijaną z możliwością wyboru szaty
* **channels** - lista dostępnych szat
  * **name** - nazwa szaty
  * **defaultChannel** - czy szata ma być domyślnie zaznaczona / wybrana&#x20;
  * **formModes** - kanały, w których dostępna jest dana szata
    * **name** - nazwa kanału obsługiwana w Eximee Designer
    * **label** - prezentowana nazwa kanału
    * **icon** - ikona symbolizująca dany kanał
* **environments** - środowiska, na których można uruchomić symulację wniosku
  * **displayName** - wyświetlana nazwa
  * **url** - adres środowiska.
