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..24df2f30 100644 --- a/spec/dummy/spec/models/post_spec.rb +++ b/spec/dummy/spec/models/post_spec.rb @@ -8,6 +8,26 @@ 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 + 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 + describe 'broadcasts' do let(:modification) { described_class.create! }