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