RSpe c AWS Лямбда-обработчик - неинициализированная константа в модуле - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть простой AWS лямбда-обработчик для Ruby 2.5.0, который я хочу протестировать. Я нашел довольно крутой пример как это сделать, но я застрял в начале с ошибкой uninitialized constant Bot.

source/handlers/jira_handler.rb

require_relative '../config/environment'

module Bot
  module JiraHandler
    extend self

    def handle(event:, context:)
      Slack::SlackMessenger.new(event).call
      { statusCode: 200 }
    end
  end
end

Модуль JiraHandler Из-за соглашения внутри модуля Bot вся установка была выполнена с использованием terraform.

spec/source/handlers/jira_handler_spec.rb

require 'spec_helper'

RSpec.describe Bot::JiraHandler do
  subject { Bot::JiraHandler }

  describe '#handle' do
    context 'when Jira webhook is launched' do
      let!(:payload) { File.new('./spec/support/events/event.json').read }
      let!(:context) { {} }
      let!(:event) do
        {
          'body' => payload
        }
      end

      let(:response) { subject.handler(event: event, context: context) }

      it 'responds successfully' do
        allow_any_instance_of(Slack::SlackMessenger).to receive(:call)

        expect(response).to include(statusCode: 200)
      end
    end
  end
end

Я получил NameError: uninitialized constant Bot. Как инициализировать эти объекты собственного модуля в спецификации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...