Files
portal/app/tests/Feature/ShortLinksTest.php
T
Дмитрий a649a41ce4 feat(visitors): короткие ссылки для рассылок — liderra.ru/s, /hh, /tg
В смс дорог каждый символ: вместо длинного хвоста с метками сервер сам
подставляет канал и дату рассылки (дд-мм), чтобы разные рассылки не слипались.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 06:53:35 +03:00

37 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
/**
* Короткие ссылки для рассылок (spec 2026-07-13 §7): в смс дорог каждый символ,
* поэтому вместо длинного хвоста с метками даём liderra.ru/s — он сам подставит
* канал и дату рассылки, и учёт увидит смс отдельно от прямых заходов.
*/
test('/s ведёт на лендинг с меткой смс и датой рассылки', function () {
$r = $this->get('/s');
$r->assertRedirect();
$url = $r->headers->get('Location');
expect($url)->toContain('utm_source=sms');
expect($url)->toContain('utm_medium=sms');
expect($url)->toContain('utm_campaign='.now()->format('d-m'));
expect($url)->toStartWith('https://liderra.ru/?');
});
test('/hh ведёт на лендинг с меткой вакансии', function () {
$url = (string) $this->get('/hh')->headers->get('Location');
expect($url)->toContain('utm_source=hh')->toContain('utm_medium=vacancy');
});
test('/tg ведёт на лендинг с меткой телеграма', function () {
$url = (string) $this->get('/tg')->headers->get('Location');
expect($url)->toContain('utm_source=tg');
});
test('переход по короткой ссылке — постоянный редирект (302), не ломает историю браузера', function () {
$this->get('/s')->assertStatus(302);
});