Rspec NoMethodError: неопределенный метод `model 'для #в Виноградную доску - PullRequest
0 голосов
/ 03 октября 2019

Мне пришлось изменить место admin_serializer в моей конечной точке получения, и это вызывает необъяснимые проблемы со спецификациями.

получить конечную точку

get do
  scoped_collection = admin_serialize(scope_admin_resource(filter(Campaign.all)))
  paginate(filter(sort(scoped_collection)))
end

, которую я изменил с

get do
  scoped_collection = scope_admin_resource(filter(Campaign.all))
  admin_serialize paginate(filter(sort(scoped_collection))), include: %i[campaign_codes]
end

specs:

let(:parsed_body) { JSON.parse(response.body) }

describe 'GET /api/v1/admin/campaigns' do
  subject(:call_endpoint) { get('/api/v1/admin/campaigns', params: params, headers: headers) }

    let(:params) { {} }

  context 'when request is authorized' do
    let(:headers) { authorization_header }

    it 'returns Campaign list' do
      call_endpoint
      expect(parsed_body['data'].first['type']).to eq('campaign')
      expect(parsed_body['data'].size).to eq(2)
    end
  end
end

Странная вещь заключается в том, что моя спецификация не работает с ошибкой:

Failure / Error: paginate (filter (sort (scoped_collection)))

NoMethodError: неопределенный метод `model 'для #Hash: 0x00007fa7a4344c68

И, честно говоря, я не знаю, что происходит. Приложение прекрасно работает в локальной среде, только спецификации не работают.

...