api#347: проверить старые recovery snapshots с default2

This commit is contained in:
Panfilov Konstantin committed 2026-10-28 05:04:08 +03:00
1 parent 0d350ed14b
commit 1993f7b4b1
3 files changed
+10 -3

No files matched your search

+2 -2
View File
@@ -1,13 +1,13 @@
<?php
declare(strict_types=1);
$root = dirname(__DIR__);
foreach (['abcd1','abcd2','abcd0','invalid'] as $part) foreach (['ru','en'] as $lang) foreach (['light', 'dark'] as $theme) foreach ([
foreach (['abcd1','abcd2','abcd0','invalid'] as $part) foreach (['light', 'dark'] as $theme) foreach ([
'zoomstage.online' => 'zoomstage.online',
'New-Preland.example:8080' => 'new-preland.example',
'www.example.test.' => 'www.example.test',
'<script>alert(1)</script>' => 'fixture.local',
] as $host => $expected) {
$html = shell_exec(PHP_BINARY . ' ' . escapeshellarg(__DIR__ . '/render-preland.php') . ' ' . escapeshellarg($host) . ' ' . escapeshellarg($theme) . ' ' . escapeshellarg($part) . ' ' . escapeshellarg($lang));
$html = shell_exec(PHP_BINARY . ' ' . escapeshellarg(__DIR__ . '/render-preland.php') . ' ' . escapeshellarg($host) . ' ' . escapeshellarg($theme) . ' ' . escapeshellarg($part));
if (!preg_match('~<footer\b.*?</footer>~s', $html, $match)) throw new RuntimeException('Подвал не найден');
$footer = $match[0];
foreach (['Наши реквизиты', 'payment.svg', 'ИНН:', 'ОГРНИП:', 'ИП Иванов', 'ИП Кардаполова', 'Для бизнеса', '/public/api-pricing'] as $forbidden) {
+8
View File
@@ -41,3 +41,11 @@ for (const part of ['abcd9','abcd0','bad']) {
assert.equal(query.get('part')[4],'1');
}
assert.equal(new URLSearchParams(handoff.query({utmDigits:{...defaults,part:'9'}},defaults)).get('part')[4],'1');
// Старые recovery-records используют тот же fallback текущего resolved snapshot, что остальные метки.
const configuredDefault2={...defaults,part:'2'};
const oldDigits={...selected};delete oldDigits.part;
const oldRecord={redirectUtm:foreign,utmDigits:oldDigits};
assert.equal(new URLSearchParams(handoff.query(oldRecord,configuredDefault2)).get('part')[4],'2');
assert.equal(new URLSearchParams(handoff.query({...oldRecord,utmDigits:{...oldDigits,part:'1'}},configuredDefault2)).get('part')[4],'1');
assert.equal(new URLSearchParams(handoff.query({...oldRecord,redirectUtm:foreign+'&part=abcd1'},configuredDefault2)).get('part')[4],'1');
console.log('OK: old recovery configured default2; saved snapshot/query retains priority');
-1
View File
@@ -4,5 +4,4 @@ $_SERVER['HTTP_HOST'] = $argv[1] ?? 'zoomstage.online';
$_SERVER['SERVER_NAME'] = 'fixture.local';
$_GET = ['theme' => 'abcd' . (($argv[2] ?? 'light') === 'dark' ? '1' : '2'), 'indpic' => 'abcd1'];
if (isset($argv[3])) $_GET['part'] = $argv[3];
if (isset($argv[4])) $_GET['lang'] = $argv[4];
require dirname(__DIR__) . '/index.php';