From 8c56b5385a87197ff7a700d0434a1bf4c9f0c0fa Mon Sep 17 00:00:00 2001 From: Yang Wen Date: Wed, 9 Sep 2026 15:12:23 +0800 Subject: [PATCH] =?UTF-8?q?fix(offerings):=20slug=20=E9=94=81=E5=AE=9A?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=B8=A6=E8=A2=AB=E6=8B=92=E6=96=B0=E5=80=BC?= =?UTF-8?q?,=E6=B6=88=E9=99=A4=20Value:=20nil=20=E6=8E=92=E9=9A=9C?= =?UTF-8?q?=E8=AF=AF=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ash keyword add_error 不传 :value 时 InvalidAttribute.value 恒为 nil, 生产排障无法区分「confirm 重放丢参数」与「锁定规则正确拦截」 (2026-09-09 物理课实例:参数链路健康,误判成疑似 bug 排查一轮)。 course/event 两处锁定校验补 value: get_attribute(:slug); open 后改 slug 用例断言消息含 Value: "new-slug" 防回归。 --- backend/test/cgc_2046/events/event_slug_test.exs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backend/test/cgc_2046/events/event_slug_test.exs b/backend/test/cgc_2046/events/event_slug_test.exs index 5920ba48..81380465 100644 --- a/backend/test/cgc_2046/events/event_slug_test.exs +++ b/backend/test/cgc_2046/events/event_slug_test.exs @@ -171,6 +171,9 @@ defmodule Cgc2046.Events.EventSlugTest do assert Exception.message(error) =~ "slug is locked" + # 错误须带被拒新值(可观测性:区分「参数丢失」与「锁定拦截」,2026-09-09 生产误判) + assert Exception.message(error) =~ ~s(Value: "new-slug") + assert Ash.get!(Event, event.id, tenant: workspace.id, authorize?: false).slug == "lock-open-event" end