52 lines
1.6 KiB
Ruby
52 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe "persistance" do
|
|
let(:db){CouchPotato.database.couchrest_database}
|
|
let(:debug) { StringIO.new }
|
|
|
|
#let(:db_uri){ File.join(db.uri.host, db.name)}
|
|
|
|
describe "database format" do
|
|
it "persists with proper ruby class" do
|
|
employee = create :employee
|
|
uri = URI.parse(File.join(db.uri, employee.id))
|
|
|
|
http = Net::HTTP.new uri.host, uri.port
|
|
http.set_debug_output(debug)
|
|
|
|
request = Net::HTTP::Get.new(uri.request_uri)
|
|
request.basic_auth uri.user, uri.password
|
|
|
|
response = http.request(request)
|
|
|
|
doc = JSON.parse(response.body)
|
|
doc['ruby_class'].should eq 'Employee'
|
|
doc.should_not have_key 'id'
|
|
#response.should include %|"ruby_class":"Employee"|
|
|
#response.should_not include %|"id":|
|
|
end
|
|
|
|
it "stores time in UTC iso8601 format" do
|
|
time = Time.utc(1981, 3, 9, 13, 22, 2).in_time_zone
|
|
Timecop.travel time do
|
|
employee_shift = create :employee_shift, start_from: time, end_on: time + 2.hours
|
|
|
|
uri = URI.parse(File.join(db.uri, employee_shift.id))
|
|
|
|
http = Net::HTTP.new uri.host, uri.port
|
|
http.set_debug_output(debug)
|
|
|
|
request = Net::HTTP::Get.new(uri.request_uri)
|
|
request.basic_auth uri.user, uri.password
|
|
|
|
response = http.request(request)
|
|
response = JSON.parse response.body
|
|
response['created_at'].should eq "1981-03-09T13:22:02Z"
|
|
response['updated_at'].should eq "1981-03-09T13:22:02Z"
|
|
response['start_from'].should eq "1981-03-09T13:22:02Z"
|
|
response['end_on'].should eq "1981-03-09T15:22:02Z"
|
|
end
|
|
end
|
|
end
|
|
end
|