From c1f18552c9e56cc93706171f938478630ae2f757 Mon Sep 17 00:00:00 2001 From: Marko Kajzer Date: Fri, 13 Feb 2026 18:06:07 +0100 Subject: [PATCH 1/2] fix: ensure turbo stream names are generated based on decorated object --- lib/draper/compatibility/global_id.rb | 3 +++ spec/dummy/spec/models/post_spec.rb | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/draper/compatibility/global_id.rb b/lib/draper/compatibility/global_id.rb index fb8e8da9..c1f0be2e 100644 --- a/lib/draper/compatibility/global_id.rb +++ b/lib/draper/compatibility/global_id.rb @@ -14,6 +14,9 @@ module GlobalID included do include ::GlobalID::Identification + + # NOTE: Ensure turbo stream names are generated based on decorated object + delegate :to_gid_param, :to_sgid_param, to: :object end class_methods do diff --git a/spec/dummy/spec/models/post_spec.rb b/spec/dummy/spec/models/post_spec.rb index 51ce22a0..6045fb43 100644 --- a/spec/dummy/spec/models/post_spec.rb +++ b/spec/dummy/spec/models/post_spec.rb @@ -8,6 +8,20 @@ it { should be_a ApplicationRecord } + describe '#to_gid_param' do + let(:post) { Post.create } + subject { post.to_gid_param } + + it { is_expected.to eq post.decorate.to_gid_param } + end + + describe '#to_sgid_param' do + let(:post) { Post.create } + subject { post.to_sgid_param } + + it { is_expected.to eq post.decorate.to_sgid_param } + end + describe 'broadcasts' do let(:modification) { described_class.create! } From 96a31c80f007f062375aee380365e513091b5b20 Mon Sep 17 00:00:00 2001 From: Marko Kajzer Date: Sat, 14 Feb 2026 15:28:12 +0100 Subject: [PATCH 2/2] test: address flake when generating sid --- spec/dummy/spec/models/post_spec.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spec/dummy/spec/models/post_spec.rb b/spec/dummy/spec/models/post_spec.rb index 6045fb43..24df2f30 100644 --- a/spec/dummy/spec/models/post_spec.rb +++ b/spec/dummy/spec/models/post_spec.rb @@ -16,9 +16,15 @@ end describe '#to_sgid_param' do + include ActiveSupport::Testing::TimeHelpers + let(:post) { Post.create } subject { post.to_sgid_param } + around do |example| + freeze_time { example.run } + end + it { is_expected.to eq post.decorate.to_sgid_param } end