2008-07-05 01:56:09 +02:00
|
|
|
require File.dirname(__FILE__) + '/spec_helper'
|
2008-03-18 19:37:10 +01:00
|
|
|
|
|
|
|
describe CouchRest do
|
|
|
|
|
|
|
|
before(:each) do
|
2008-07-05 01:56:09 +02:00
|
|
|
@cr = CouchRest.new(COUCHHOST)
|
2008-03-18 19:37:10 +01:00
|
|
|
begin
|
2008-07-05 01:56:09 +02:00
|
|
|
@db = @cr.database(TESTDB)
|
|
|
|
@db.delete!
|
|
|
|
|
2008-03-19 16:57:20 +01:00
|
|
|
rescue RestClient::Request::RequestFailed
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
after(:each) do
|
|
|
|
begin
|
|
|
|
@db.delete!
|
2008-03-18 19:37:10 +01:00
|
|
|
rescue RestClient::Request::RequestFailed
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2008-05-21 20:08:42 +02:00
|
|
|
describe "tested against the current CouchDB svn revision" do
|
|
|
|
it "should be up to date" do
|
2008-05-23 19:18:09 +02:00
|
|
|
v = @cr.info["version"]
|
2008-06-12 18:16:53 +02:00
|
|
|
if /incubating/.match(v)
|
|
|
|
v.should include('0.8.0')
|
|
|
|
else
|
|
|
|
vi = v.split(/a/).pop.to_i
|
|
|
|
vi.should be >= 661484 # versions older than this will likely fail many specs
|
|
|
|
vi.should be <= 663797 # versions newer than this haven't been tried
|
|
|
|
end
|
2008-05-21 20:08:42 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2008-03-18 19:37:10 +01:00
|
|
|
describe "getting info" do
|
|
|
|
it "should list databases" do
|
|
|
|
@cr.databases.should be_an_instance_of(Array)
|
|
|
|
end
|
|
|
|
it "should get info" do
|
2008-05-15 02:27:21 +02:00
|
|
|
@cr.info["couchdb"].should == "Welcome"
|
2008-03-18 19:37:10 +01:00
|
|
|
@cr.info.class.should == Hash
|
|
|
|
end
|
|
|
|
end
|
2008-06-15 20:43:05 +02:00
|
|
|
|
|
|
|
describe "description" do
|
|
|
|
it "should restart" do
|
|
|
|
@cr.restart!
|
|
|
|
end
|
|
|
|
end
|
2008-03-18 19:37:10 +01:00
|
|
|
|
|
|
|
describe "initializing a database" do
|
|
|
|
it "should return a db" do
|
2008-07-05 01:56:09 +02:00
|
|
|
db = @cr.database(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
db.should be_an_instance_of(CouchRest::Database)
|
|
|
|
db.host.should == @cr.uri
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "successfully creating a database" do
|
|
|
|
it "should start without a database" do
|
2008-07-05 01:56:09 +02:00
|
|
|
@cr.databases.should_not include(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
end
|
|
|
|
it "should return the created database" do
|
2008-07-05 01:56:09 +02:00
|
|
|
db = @cr.create_db(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
db.should be_an_instance_of(CouchRest::Database)
|
|
|
|
end
|
|
|
|
it "should create the database" do
|
2008-07-05 01:56:09 +02:00
|
|
|
db = @cr.create_db(TESTDB)
|
|
|
|
@cr.databases.should include(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "failing to create a database because the name is taken" do
|
|
|
|
before(:each) do
|
2008-07-05 01:56:09 +02:00
|
|
|
db = @cr.create_db(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
end
|
|
|
|
it "should start with the test database" do
|
2008-07-05 01:56:09 +02:00
|
|
|
@cr.databases.should include(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
end
|
|
|
|
it "should PUT the database and raise an error" do
|
|
|
|
lambda{
|
2008-07-05 01:56:09 +02:00
|
|
|
@cr.create_db(TESTDB)
|
2008-03-18 19:37:10 +01:00
|
|
|
}.should raise_error(RestClient::Request::RequestFailed)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|