fix(integrations): normalize linear issue params

This commit is contained in:
Sojan Jose
2026-01-24 01:41:02 -08:00
parent 195dde9fde
commit 2e37ecacba
2 changed files with 4 additions and 16 deletions
@@ -28,7 +28,7 @@ class Api::V1::Accounts::Integrations::LinearController < Api::V1::Accounts::Bas
end
def create_issue
issue = linear_processor_service.create_issue(permitted_params, Current.user)
issue = linear_processor_service.create_issue(permitted_params.to_h.stringify_keys, Current.user)
if issue[:error]
render json: { error: issue[:error] }, status: :unprocessable_entity
else
@@ -119,7 +119,7 @@ RSpec.describe 'Linear Integration API', type: :request do
let(:created_issue) { { data: { identifier: 'ENG-123', title: 'Sample Issue' } } }
it 'returns the created issue' do
allow(processor_service).to receive(:create_issue).and_return(created_issue)
allow(processor_service).to receive(:create_issue).with(issue_params.stringify_keys, agent).and_return(created_issue)
post "/api/v1/accounts/#{account.id}/integrations/linear/create_issue",
params: issue_params,
@@ -128,14 +128,10 @@ RSpec.describe 'Linear Integration API', type: :request do
expect(response).to have_http_status(:ok)
expect(response.body).to include('Sample Issue')
expect(processor_service).to have_received(:create_issue) do |params, user|
expect(params.to_h).to eq(issue_params.stringify_keys)
expect(user).to eq(agent)
end
end
it 'creates activity message when conversation is provided' do
allow(processor_service).to receive(:create_issue).and_return(created_issue)
allow(processor_service).to receive(:create_issue).with(issue_params.stringify_keys, agent).and_return(created_issue)
expect do
post "/api/v1/accounts/#{account.id}/integrations/linear/create_issue",
@@ -149,16 +145,12 @@ RSpec.describe 'Linear Integration API', type: :request do
message_type: :activity,
content: "Linear issue ENG-123 was created by #{agent.name}"
})
expect(processor_service).to have_received(:create_issue) do |params, user|
expect(params.to_h).to eq(issue_params.stringify_keys)
expect(user).to eq(agent)
end
end
end
context 'when issue creation fails' do
it 'returns error message and does not create activity message' do
allow(processor_service).to receive(:create_issue).and_return(error: 'error message')
allow(processor_service).to receive(:create_issue).with(issue_params.stringify_keys, agent).and_return(error: 'error message')
expect do
post "/api/v1/accounts/#{account.id}/integrations/linear/create_issue",
@@ -169,10 +161,6 @@ RSpec.describe 'Linear Integration API', type: :request do
expect(response).to have_http_status(:unprocessable_entity)
expect(response.body).to include('error message')
expect(processor_service).to have_received(:create_issue) do |params, user|
expect(params.to_h).to eq(issue_params.stringify_keys)
expect(user).to eq(agent)
end
end
end
end