1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
- require 'rails_helper'
- RSpec.describe ExternalCredential, :aggregate_failures, current_user_id: 1, type: :model do
- describe '#update_client_secret' do
- let(:external_credential) { create(:external_credential, name: 'google', credentials:) }
- let(:credentials) do
- {
- 'client_secret' => 'dummy-1337',
- 'code' => 'code123',
- 'grant_type' => 'authorization_code',
- 'client_id' => 'dummy123',
- 'redirect_uri' => described_class.callback_url('google'),
- }
- end
- before do
- allow(ExternalCredential::Google).to receive(:update_client_secret).and_call_original
- end
- context 'when credentials are not changed' do
- it 'does not call update_client_secret on the backend module' do
- external_credential.update!(created_at: Time.zone.now)
- expect(ExternalCredential::Google).not_to have_received(:update_client_secret)
- end
- end
- context 'when credentials are changed' do
- context 'when client_secret is blank' do
- it 'does not call update_client_secret on the backend module' do
- external_credential.update!(credentials: credentials.merge('client_secret' => ''))
- expect(ExternalCredential::Google).not_to have_received(:update_client_secret)
- end
- end
- context 'when client_secret is not changed' do
- it 'does not call update_client_secret on the backend module' do
- external_credential.update!(credentials: credentials)
- expect(ExternalCredential::Google).not_to have_received(:update_client_secret)
- end
- end
- context 'when client_id is changed' do
- it 'does not call update_client_secret on the backend module' do
- external_credential.update!(credentials: credentials.merge('client_id' => 'dummy456'))
- expect(ExternalCredential::Google).not_to have_received(:update_client_secret)
- end
- end
- context 'when client_secret is changed' do
- it 'calls update_client_secret on the backend module' do
- external_credential.update!(credentials: credentials.merge('client_secret' => 'new-dummy-1337'))
- expect(ExternalCredential::Google).to have_received(:update_client_secret).with('dummy-1337', 'new-dummy-1337')
- end
- end
- end
- end
- end
|