Заявление на увольнение (#15)
Tests / frontend-test (push) Successful in 1m17s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/15
This commit was merged in pull request #15.
This commit is contained in:
2026-08-26 07:07:03 +00:00
parent f751f03060
commit df29d080ed
39 changed files with 2460 additions and 46 deletions
@@ -1,11 +1,13 @@
import {
IRoute,
navigate,
navigateToRequestLink,
parseRoute,
persistOwnStatus,
persistOwnTab,
persistPage,
persistQuery,
requestLinkUrl,
routeUrl,
storedOwnStatus,
storedOwnTab,
@@ -527,3 +529,34 @@ describe('navigate', () => {
expect(seen[0]).toContain('rpnav=approvals');
});
});
describe('requestLinkUrl / navigateToRequestLink', () => {
it('ссылка абсолютна и не тащит посторонние параметры текущей страницы', () => {
window.history.replaceState({}, '', '/?foo=bar&rpnav=own');
expect(requestLinkUrl('clearance-form', 7, '/sites/requests/Lists/List10')).toBe(
'http://localhost/?rpmode=approve&rptype=clearance-form&rpid=7&rplist=%2Fsites%2Frequests%2FLists%2FList10'
);
});
it('ссылка на заявку этого же портала открывается навигацией, без перезагрузки', () => {
window.history.replaceState({}, '', '/?rpnav=own');
expect(navigateToRequestLink(requestLinkUrl('clearance-form', 7))).toBe(true);
const route = parseRoute();
expect(route.mode).toBe('approve');
expect(route.formKey).toBe('clearance-form');
expect(route.itemId).toBe(7);
// Раздел под панелью заявки остаётся тем же, что был открыт.
expect(route.nav).toBe('own');
});
it('чужой сайт, другая страница и ссылка не на заявку — клик отдаётся браузеру', () => {
expect(navigateToRequestLink('https://example.com/p?rpmode=approve&rptype=a&rpid=1')).toBe(false);
expect(navigateToRequestLink('/OtherPage.aspx?rpmode=approve&rptype=a&rpid=1')).toBe(false);
expect(navigateToRequestLink('http://localhost/?rpnav=own')).toBe(false);
});
it('мусор вместо адреса не роняет обработчик клика', () => {
expect(navigateToRequestLink('не ссылка')).toBe(false);
});
});