main
 1require 'rails_helper'
 2
 3module Api
 4  module V1
 5    describe FailuresController do
 6      describe "#create" do
 7        let(:service) { create(:service) }
 8        let(:environment) { create(:environment, service: service) }
 9        let(:token) { ActionController::HttpAuthentication::Token.encode_credentials(environment.api_key) }
10        let(:error) do
11          begin
12            1/0
13          rescue StandardError => error
14            error
15          end
16        end
17        let(:hostname) { Socket.gethostname }
18
19        before :each do
20          request.env['HTTP_AUTHORIZATION'] = token
21        end
22
23        it 'saves a new error' do
24          xhr :post, :create, error: { message: error.message, hostname: hostname, error_type: error.class, backtrace: error.backtrace }
25          environment.reload
26
27          expect(response.status).to eql(200)
28          expect(environment.failures.count).to eql(1)
29          failure = Failure.last
30          expect(failure.message).to eql(error.message)
31          expect(failure.hostname).to eql(hostname)
32          expect(failure.error_type).to eql(error.class.to_s)
33          expect(failure.backtrace).to eql(error.backtrace)
34        end
35      end
36    end
37  end
38end