Ruby Ха sh Выравнивание - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь исправить ошибку линтера в тестовом файле моих запросов. У меня есть блок контекста следующим образом:

context 'when the request is valid' do
  before(:each) do
    post '/api/v1/budgets',headers: authenticated_header(@user), params: {
      budget: valid_attributes
    }
  end
end

Тем не менее, я получаю следующую ошибку:

C: Layout/ArgumentAlignment: Align the arguments of a method call if they span more than one line.

Как правильно выровнять этот блок?

1 Ответ

1 голос
/ 08 марта 2020

Если посмотреть на документацию RuboCop Layout/ArgumentAlignment, я могу предположить, что:

context 'when the request is valid' do
  before(:each) do
    post '/api/v1/budgets',
         headers: authenticated_header(@user),
         params: { budget: valid_attributes }
  end
end

Когда вам нужна многострочная params, она должна выглядеть примерно так:

context 'when the request is valid' do
  before(:each) do
    post '/api/v1/budgets',
         headers: authenticated_header(@user),
         params: {
           budget: valid_attributes
         }
  end
end

Если у вас есть более одного аргумента в первой строке:

context 'when the request is valid' do
  before(:each) do
    post '/api/v1/budgets', headers: authenticated_header(@user), params: {
           budget: valid_attributes
         }
  end
end

Если у вас длинное имя метода, вы также можете рассмотреть возможность перемещения первого аргумента на следующую строку, чтобы уменьшить намерение для всех остальных аргументов:

context 'when the request is valid' do
  before(:each) do
    a_somewhat_long_method_name
      '/api/v1/budgets',
      headers: authenticated_header(@user),
      params: { budget: valid_attributes }
  end
end

Вышеперечисленное забавляет, что вы используете конфигурацию по умолчанию (:with_first_argument).

...