summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@riseup.net>2014-02-04 11:25:43 +0100
committerAzul <azul@riseup.net>2014-02-04 11:46:57 +0100
commitc3cb71ca5e6d32960e4493d85799f3706ea91fe8 (patch)
treeb42a5522f0eb4729d76c9ab24e97101ff6119ce5
parent630c38a0bcf4ca39ede98d354d8d43e6f735317c (diff)
test user deletion
-rw-r--r--test/integration/tapicero_test.rb19
-rw-r--r--test/support/integration_test.rb16
2 files changed, 27 insertions, 8 deletions
diff --git a/test/integration/tapicero_test.rb b/test/integration/tapicero_test.rb
index b7a3dd4..88e3715 100644
--- a/test/integration/tapicero_test.rb
+++ b/test/integration/tapicero_test.rb
@@ -2,24 +2,35 @@ require_relative '../test_helper.rb'
class TapiceroTest < Tapicero::IntegrationTest
- def test_creates_user_db
+ def setup
create_user
+ end
+
+ def teardown
+ delete_user(true)
+ end
+
+ def test_creates_user_db
assert user_database
assert user_database.name.start_with?(config.options[:db_prefix])
- assert user_database.info
+ assert user_database.info # ensure db exists in couch.
end
def test_configures_security
- create_user
assert_equal config.options[:security], user_database.get('_security')
end
def test_stores_design_docs
- create_user
assert_equal ['_design/docs', '_design/syncs', '_design/transactions'],
design_docs(user_database).map{|doc| doc["id"]}.sort
end
+ def test_cleares_user_db
+ assert user_database.info # ensure db exists in couch.
+ delete_user
+ assert !host.databases.include?(user_database.name)
+ end
+
def design_docs(db)
db.documents(startkey: '_design', endkey: '_design'.succ)["rows"]
end
diff --git a/test/support/integration_test.rb b/test/support/integration_test.rb
index 44f0546..b28c0e1 100644
--- a/test/support/integration_test.rb
+++ b/test/support/integration_test.rb
@@ -1,15 +1,23 @@
module Tapicero
class IntegrationTest < MiniTest::Unit::TestCase
- def create_user
+ def create_user(fast = false)
result = database.save_doc :some => :content
raise RuntimeError.new(result.inspect) unless result['ok']
- sleep 1 # allow tapicero to do its job
- @user_id = result['id']
+ sleep 1 unless fast # allow tapicero to do its job
+ @user = {'_id' => result["id"], '_rev' => result["rev"]}
+ end
+
+ def delete_user(fast = false)
+ return if @user.nil? or @user['_deleted']
+ result = database.delete_doc @user
+ raise RuntimeError.new(result.inspect) unless result['ok']
+ @user['_deleted'] = true
+ sleep 1 unless fast # allow tapicero to do its job
end
def user_database
- host.database(config.options[:db_prefix] + @user_id)
+ host.database(config.options[:db_prefix] + @user['_id'])
end
def database