internal/domain/widget_test.go
Rama main · réplica de lectura del repositorio original.
package domain
import "testing"
// ApplyWidgetDataPatch records explicit public-data presence so an explicit ""
// clear is distinguishable from "no per-message override" and is idempotent.
func TestApplyWidgetDataPatchPresenceAndClear(t *testing.T) {
widget := &MessageWidget{PublicData: "a", PublicDataHash: WidgetDataHash("a")}
media := &MessageMedia{Kind: MessageMediaKindWidget, Widget: widget}
empty := ""
if !ApplyWidgetDataPatch(media, &MessageWidgetDataPatch{PublicData: &empty}) {
t.Fatal("clearing public data reported no change")
}
if !widget.PublicDataSet || widget.PublicData != "" || widget.PublicDataHash != WidgetDataHash("") {
t.Fatalf("cleared widget = %+v", widget)
}
if ApplyWidgetDataPatch(media, &MessageWidgetDataPatch{PublicData: &empty}) {
t.Fatal("re-applying the same clear reported a change")
}
// A non-widget media is never patched.
if ApplyWidgetDataPatch(&MessageMedia{Kind: MessageMediaKindPhoto}, &MessageWidgetDataPatch{PublicData: &empty}) {
t.Fatal("non-widget media was patched")
}
}