# frozen_string_literal: true require 'rails_helper' RSpec.describe Channel::Whatsapp do describe 'validate_provider_config' do let(:channel) { build(:channel_whatsapp, provider: 'whatsapp_cloud', account: create(:account)) } it 'validates false when provider config is wrong' do stub_request(:get, 'https://graph.facebook.com/v14.0//message_templates?access_token=test_key').to_return(status: 401) expect(channel.save).to be(false) end it 'validates true when provider config is right' do stub_request(:get, 'https://graph.facebook.com/v14.0//message_templates?access_token=test_key') .to_return(status: 200, body: { data: [{ id: '123456789', name: 'test_template' }] }.to_json) expect(channel.save).to be(true) end end describe 'webhook_verify_token' do it 'generates webhook_verify_token if not present' do channel = create(:channel_whatsapp, provider_config: { webhook_verify_token: nil }, provider: 'whatsapp_cloud', account: create(:account), validate_provider_config: false, sync_templates: false) expect(channel.provider_config['webhook_verify_token']).not_to be_nil end it 'does not generate webhook_verify_token if present' do channel = create(:channel_whatsapp, provider: 'whatsapp_cloud', provider_config: { webhook_verify_token: '123' }, account: create(:account), validate_provider_config: false, sync_templates: false) expect(channel.provider_config['webhook_verify_token']).to eq '123' end end end