UNPKG

@nsmp/js-api

Version:

Types for jsApi

100 lines (80 loc) 2.75 kB
import {deepMergeJsApi, getAppBaseUrl} from './index'; import {IJsApi, PartialJsApi} from '../types'; import {objectCard} from '../constants'; describe('Функция deepMergeJsApi', () => { /** * Определяем функции отдельно, чтобы после объединения тестовых jsApi, * они ссылались на одни и те же функции */ function cancel () {} function getCurrentLocale () { return 'ru'; } function getType () { return objectCard; } function getValues () { return Promise.resolve({}); } function isAddForm () { return false; } function isEditForm () { return false; } function isModal () { return false; } const firstJsApi: IJsApi = { forms: { cancel, getType, // @ts-ignore getValues }, isAddForm, isEditForm }; const secondJsApi: PartialJsApi = { forms: { isModal }, getCurrentLocale }; const fullJsApi: PartialJsApi = { forms: { cancel, getType, getValues, isModal }, getCurrentLocale, isAddForm, isEditForm }; it('возвращает глубокое объединение двух объектов jsApi', () => { expect(deepMergeJsApi(firstJsApi, secondJsApi)).toEqual(fullJsApi); }); }); describe('Функция getAppBaseUrl', () => { const alertSpy = jest.spyOn(window, 'alert').mockImplementation(() => {}); it('вызывает alert и возвращает пустую строку, если ссылка на приложение не назначена', () => { const appBaseUrl = getAppBaseUrl(); expect(alertSpy).toHaveBeenCalledWith('Ссылка на приложение не передана или имеет неверный формат'); expect(appBaseUrl).toBe(''); }); it('вызывает alert и возвращает пустую строку, если ссылка на приложение имеет неверный формат', () => { process.env.APP_URL = 'not link'; const appBaseUrl = getAppBaseUrl(); expect(alertSpy).toHaveBeenCalledWith('Ссылка на приложение не передана или имеет неверный формат'); expect(appBaseUrl).toBe(''); }); it('возвращает ссылку на приложение, если передана ссылка с слэшем в конце', () => { process.env.APP_URL = 'https://domain.ru/'; expect(getAppBaseUrl()).toBe('https://domain.ru/sd/'); }); it('возвращает ссылку на приложение, если передана ссылка без слэша в конце', () => { process.env.APP_URL = 'https://domain.ru'; expect(getAppBaseUrl()).toBe('https://domain.ru/sd/'); }); });