42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
require 'spec_helper'
|
|
|
|
# user progression is achieved by different aspects of the code working together in a cross-cutting fashion.
|
|
# due to this, it's nice to have a single place where all the parts of user progression are tested
|
|
# https://jamkazam.atlassian.net/wiki/pages/viewpage.action?pageId=3375145
|
|
|
|
describe "Diagnostics", :type => :api do
|
|
|
|
let(:user) { FactoryGirl.create(:user) }
|
|
|
|
subject { page }
|
|
|
|
def login(user)
|
|
post '/sessions', "session[email]" => user.email, "session[password]" => user.password
|
|
rack_mock_session.cookie_jar["remember_token"].should == user.remember_token
|
|
end
|
|
|
|
|
|
describe "create" do
|
|
|
|
before do
|
|
Diagnostic.delete_all
|
|
login(user)
|
|
end
|
|
|
|
it "can fail" do
|
|
post "/api/diagnostics.json", {}.to_json, "CONTENT_TYPE" => 'application/json'
|
|
last_response.status.should eql(422)
|
|
JSON.parse(last_response.body).should eql({"errors"=>{"type"=>["is not included in the list"]}})
|
|
Diagnostic.count.should == 0
|
|
end
|
|
|
|
it "can succeed" do
|
|
post "/api/diagnostics.json", { type: Diagnostic::NO_HEARTBEAT_ACK}.to_json, "CONTENT_TYPE" => 'application/json'
|
|
last_response.status.should eql(201)
|
|
Diagnostic.count.should == 1
|
|
end
|
|
|
|
|
|
end
|
|
end
|