12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe Gql::Subscriptions::ConfigUpdates, type: :graphql do
- let(:setting) { build(:setting, name: 'broadcast_test', state: setting_value, frontend: true) }
- let(:subscription) do
- <<~QUERY
- subscription configUpdates {
- configUpdates {
- setting {
- key
- value
- }
- }
- }
- QUERY
- end
- let(:mock_channel) { build_mock_channel }
- let(:expected_msg) do
- {
- result: {
- 'data' => {
- 'configUpdates' => {
- 'setting' => {
- 'key' => 'broadcast_test',
- 'value' => expected_value
- }
- }
- }
- },
- more: true,
- }
- end
- context 'when using static value' do
- let(:setting_value) { 'subscription_test' }
- let(:expected_value) { setting_value }
- it 'broadcasts config update events' do
- gql.execute(subscription, context: { channel: mock_channel })
- setting.save
- expect(mock_channel.mock_broadcasted_messages).to eq([expected_msg])
- end
- end
- context 'when using interpolated value' do
- let(:setting_value) { 'test #{config.fqdn}' } # rubocop:disable Lint/InterpolationCheck
- let(:expected_value) { "test #{Setting.get('fqdn')}" }
- it 'broadcasts config update events with interpolated string' do
- gql.execute(subscription, context: { channel: mock_channel })
- setting.save
- expect(mock_channel.mock_broadcasted_messages).to eq([expected_msg])
- end
- end
- end
|