mirror of
https://github.com/fspc/BikeShed-1.git
synced 2025-02-28 16:53:23 -05:00
Finish Api/TimeEntries spec, fix bike_id handling
This commit is contained in:
parent
1191014471
commit
00511c5b64
@ -5,9 +5,10 @@ class Api::V1::TimeEntriesController < Api::V1::BaseController
|
|||||||
if params[:time_entries] && time_entry = params[:time_entries].first
|
if params[:time_entries] && time_entry = params[:time_entries].first
|
||||||
time_entry.merge!({ loggable_id: current_user.id,
|
time_entry.merge!({ loggable_id: current_user.id,
|
||||||
logger_id: current_user.id })
|
logger_id: current_user.id })
|
||||||
|
bike_id = time_entry[:bike_id].to_i
|
||||||
|
|
||||||
if time_entry[:bike_id] >= 0
|
if bike_id > 0
|
||||||
time_entry.copy_to_bike_history(time_entry[:bike_id])
|
time_entry.copy_to_bike_history(bike_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
@time_entry = TimeEntry.new(time_entry.except(:bike_id))
|
@time_entry = TimeEntry.new(time_entry.except(:bike_id))
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Api::V1::TimeEntriesController do
|
describe Api::V1::TimeEntriesController do
|
||||||
|
render_views
|
||||||
|
|
||||||
describe "#create" do
|
describe "#create" do
|
||||||
|
|
||||||
@ -24,6 +25,56 @@ describe Api::V1::TimeEntriesController do
|
|||||||
expect(json["errors"].first).to eql Api::V1::TimeEntriesController::EXPECTED_TIME_ENTRY
|
expect(json["errors"].first).to eql Api::V1::TimeEntriesController::EXPECTED_TIME_ENTRY
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "with valid time entry in json data" do
|
||||||
|
|
||||||
|
before(:each) do
|
||||||
|
time_data = { time_entries: [{
|
||||||
|
start_date: Time.zone.now,
|
||||||
|
end_date: Time.zone.now + 60,
|
||||||
|
log_action_id: 1,
|
||||||
|
bike_id: -1,
|
||||||
|
description: "My description"}]
|
||||||
|
}
|
||||||
|
|
||||||
|
#this is necessary because render_views does not work with sign_in devise helper
|
||||||
|
@submit_json = api_submit_json(user, time_data)
|
||||||
|
#not sure why format: :json not working
|
||||||
|
request.accept = 'application/json'
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns 200" do
|
||||||
|
post :create, @submit_json
|
||||||
|
expect(@response.code.to_i).to eql 200
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the created time entry json" do
|
||||||
|
post :create, @submit_json
|
||||||
|
json = JSON.parse(@response.body)
|
||||||
|
expect(json).to have_key("time_entries")
|
||||||
|
expect(json.to_s).to include(@submit_json[:time_entries].first[:description])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with invalid time entry in json data" do
|
||||||
|
before(:each) do
|
||||||
|
@submit_json = { time_entries: [{
|
||||||
|
description: "My description",
|
||||||
|
}]}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns 422" do
|
||||||
|
post :create, @submit_json
|
||||||
|
expect(@response.code.to_i).to eql 422
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the fields with errors" do
|
||||||
|
post :create, @submit_json
|
||||||
|
json = JSON.parse(@response.body)
|
||||||
|
expect(json).to have_key("errors")
|
||||||
|
expect(json.to_s).to include("can't be blank")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user