From 7baa1cfa1373e2a33a1a4538efd46e6cc123d4c2 Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 12 Sep 2026 12:54:31 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B2=D0=B8=D0=B4=D0=B5=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=20=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=20?= =?UTF-8?q?=D0=B4=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=B8=D0=B2=D1=83,=20?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D0=B5=D1=91=20=D1=86=D0=B8=D1=82=D0=B0?= =?UTF-8?q?=D1=82=D1=83=20=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Мутант, снимающий `needs: build` с анонса, выживал: проверка искала подстроку `needs: build` в блоке задания, а ровно эта строка процитирована двумя строками выше — в комментарии, объясняющем, зачем зависимость нужна. Проверка зеленела на собственном объяснении. Issue: #538 User-Visible: no --- test/release-workflow.test.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/release-workflow.test.mjs b/test/release-workflow.test.mjs index 06fbcdf6..c6e1aa39 100644 --- a/test/release-workflow.test.mjs +++ b/test/release-workflow.test.mjs @@ -44,7 +44,9 @@ test('#538 AC2: release.yml зовёт анонс после выкладки а const build = at(' build:\n'); assert.ok(build < job, 'анонс описан после сборки, а не до неё'); const block = workflow.slice(job, workflow.indexOf('\n hacs-discovery:')); - assert.match(block, /needs: build/, 'анонс зависит от выкладки ассетов'); + // Не `/needs: build/`: в том же блоке лежит комментарий, где эта строка + // процитирована, и проверка зеленела бы на нём. Требуется сама директива. + assert.match(block, /^ {4}needs: build$/m, 'анонс зависит от выкладки ассетов'); assert.match(block, /uses: \.\/\.github\/workflows\/announce\.yml/); assert.match(block, /prerelease: \$\{\{ github\.event\.release\.prerelease \}\}/, 'беты остаются тихими по тому же признаку, что и раньше');