couchrest 1.2.1 → 2.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,146 +16,151 @@ describe CouchRest do
16
16
  end
17
17
  end
18
18
 
19
+ let :mock_server do
20
+ CouchRest.new("http://mock")
21
+ end
22
+
19
23
  describe "getting info" do
20
24
  it "should list databases" do
21
- @cr.databases.should be_an_instance_of(Array)
25
+ expect(@cr.databases).to be_an_instance_of(Array)
22
26
  end
23
27
  it "should get info" do
24
- @cr.info["couchdb"].should == "Welcome"
25
- @cr.info.class.should == Hash
28
+ expect(@cr.info["couchdb"]).to eq "Welcome"
29
+ expect(@cr.info.class).to eq Hash
26
30
  end
27
31
  end
28
32
 
29
33
  it "should restart" do
30
34
  # we really do not need to perform a proper restart!
31
- CouchRest.should_receive(:post).with("#{@cr.uri}/_restart")
32
- @cr.restart!
35
+ stub_request(:post, "http://mock/_restart")
36
+ .to_return(:body => "{\"ok\":true}")
37
+ mock_server.restart!
33
38
  end
34
39
 
35
40
  it "should provide one-time access to uuids" do
36
- @cr.next_uuid.should_not be_nil
41
+ expect(@cr.next_uuid).not_to be_nil
37
42
  end
38
43
 
39
44
  describe "initializing a database" do
40
45
  it "should return a db" do
41
46
  db = @cr.database(TESTDB)
42
- db.should be_an_instance_of(CouchRest::Database)
43
- db.host.should == @cr.uri
47
+ expect(db).to be_an_instance_of(CouchRest::Database)
48
+ expect(db.uri).to eq(@cr.uri + TESTDB)
44
49
  end
45
50
  end
46
51
 
47
52
  describe "parsing urls" do
48
53
  it "should parse just a dbname" do
49
54
  db = CouchRest.parse "my-db"
50
- db[:database].should == "my-db"
51
- db[:host].should == "http://127.0.0.1:5984"
55
+ expect(db[:database]).to eq "my-db"
56
+ expect(db[:host]).to eq "http://127.0.0.1:5984"
52
57
  end
53
58
  it "should parse a host and db" do
54
59
  db = CouchRest.parse "127.0.0.1/my-db"
55
- db[:database].should == "my-db"
56
- db[:host].should == "http://127.0.0.1"
60
+ expect(db[:database]).to eq "my-db"
61
+ expect(db[:host]).to eq "http://127.0.0.1"
57
62
  end
58
63
  it "should parse a host and db with http" do
59
64
  db = CouchRest.parse "http://127.0.0.1/my-db"
60
- db[:database].should == "my-db"
61
- db[:host].should == "http://127.0.0.1"
65
+ expect(db[:database]).to eq "my-db"
66
+ expect(db[:host]).to eq "http://127.0.0.1"
62
67
  end
63
68
  it "should parse a host and db with https" do
64
69
  db = CouchRest.parse "https://127.0.0.1/my-db"
65
- db[:database].should == "my-db"
66
- db[:host].should == "https://127.0.0.1"
70
+ expect(db[:database]).to eq "my-db"
71
+ expect(db[:host]).to eq "https://127.0.0.1"
67
72
  end
68
73
  it "should parse a host with a port and db" do
69
74
  db = CouchRest.parse "127.0.0.1:5555/my-db"
70
- db[:database].should == "my-db"
71
- db[:host].should == "http://127.0.0.1:5555"
75
+ expect(db[:database]).to eq "my-db"
76
+ expect(db[:host]).to eq "http://127.0.0.1:5555"
72
77
  end
73
78
  it "should parse a host with a port and db with http" do
74
79
  db = CouchRest.parse "http://127.0.0.1:5555/my-db"
75
- db[:database].should == "my-db"
76
- db[:host].should == "http://127.0.0.1:5555"
80
+ expect(db[:database]).to eq "my-db"
81
+ expect(db[:host]).to eq "http://127.0.0.1:5555"
77
82
  end
78
83
  it "should parse a host with a port and db with https" do
79
84
  db = CouchRest.parse "https://127.0.0.1:5555/my-db"
80
- db[:database].should == "my-db"
81
- db[:host].should == "https://127.0.0.1:5555"
85
+ expect(db[:database]).to eq "my-db"
86
+ expect(db[:host]).to eq "https://127.0.0.1:5555"
82
87
  end
83
88
  it "should parse just a host" do
84
89
  db = CouchRest.parse "http://127.0.0.1:5555/"
85
- db[:database].should be_nil
86
- db[:host].should == "http://127.0.0.1:5555"
90
+ expect(db[:database]).to be_nil
91
+ expect(db[:host]).to eq "http://127.0.0.1:5555"
87
92
  end
88
93
  it "should parse just a host with https" do
89
94
  db = CouchRest.parse "https://127.0.0.1:5555/"
90
- db[:database].should be_nil
91
- db[:host].should == "https://127.0.0.1:5555"
95
+ expect(db[:database]).to be_nil
96
+ expect(db[:host]).to eq "https://127.0.0.1:5555"
92
97
  end
93
98
  it "should parse just a host no slash" do
94
99
  db = CouchRest.parse "http://127.0.0.1:5555"
95
- db[:host].should == "http://127.0.0.1:5555"
96
- db[:database].should be_nil
100
+ expect(db[:host]).to eq "http://127.0.0.1:5555"
101
+ expect(db[:database]).to be_nil
97
102
  end
98
103
  it "should parse just a host no slash and https" do
99
104
  db = CouchRest.parse "https://127.0.0.1:5555"
100
- db[:host].should == "https://127.0.0.1:5555"
101
- db[:database].should be_nil
105
+ expect(db[:host]).to eq "https://127.0.0.1:5555"
106
+ expect(db[:database]).to be_nil
102
107
  end
103
108
  it "should get docid" do
104
109
  db = CouchRest.parse "127.0.0.1:5555/my-db/my-doc"
105
- db[:database].should == "my-db"
106
- db[:host].should == "http://127.0.0.1:5555"
107
- db[:doc].should == "my-doc"
110
+ expect(db[:database]).to eq "my-db"
111
+ expect(db[:host]).to eq "http://127.0.0.1:5555"
112
+ expect(db[:doc]).to eq "my-doc"
108
113
  end
109
114
  it "should get docid with http" do
110
115
  db = CouchRest.parse "http://127.0.0.1:5555/my-db/my-doc"
111
- db[:database].should == "my-db"
112
- db[:host].should == "http://127.0.0.1:5555"
113
- db[:doc].should == "my-doc"
116
+ expect(db[:database]).to eq "my-db"
117
+ expect(db[:host]).to eq "http://127.0.0.1:5555"
118
+ expect(db[:doc]).to eq "my-doc"
114
119
  end
115
120
  it "should get docid with https" do
116
121
  db = CouchRest.parse "https://127.0.0.1:5555/my-db/my-doc"
117
- db[:database].should == "my-db"
118
- db[:host].should == "https://127.0.0.1:5555"
119
- db[:doc].should == "my-doc"
122
+ expect(db[:database]).to eq "my-db"
123
+ expect(db[:host]).to eq "https://127.0.0.1:5555"
124
+ expect(db[:doc]).to eq "my-doc"
120
125
  end
121
126
  end
122
127
 
123
128
  describe "easy initializing a database adapter" do
124
129
  it "should be possible without an explicit CouchRest instantiation" do
125
130
  db = CouchRest.database "http://127.0.0.1:5984/couchrest-test"
126
- db.should be_an_instance_of(CouchRest::Database)
127
- db.host.should == "http://127.0.0.1:5984"
131
+ expect(db).to be_an_instance_of(CouchRest::Database)
132
+ expect(db.uri.to_s).to eq "http://127.0.0.1:5984/couchrest-test"
128
133
  end
129
134
  # TODO add https support (need test environment...)
130
135
  # it "should work with https" # do
131
136
  # db = CouchRest.database "https://127.0.0.1:5984/couchrest-test"
132
- # db.host.should == "https://127.0.0.1:5984"
137
+ # expect(db.host).to eq "https://127.0.0.1:5984"
133
138
  # end
134
139
  it "should not create the database automatically" do
135
140
  db = CouchRest.database "http://127.0.0.1:5984/couchrest-test"
136
- lambda{db.info}.should raise_error(RestClient::ResourceNotFound)
141
+ expect(lambda{db.info}).to raise_error(CouchRest::NotFound)
137
142
  end
138
143
  end
139
144
 
140
145
  describe "ensuring the db exists" do
141
146
  it "should be super easy" do
142
147
  db = CouchRest.database! "#{COUCHHOST}/couchrest-test-2"
143
- db.name.should == 'couchrest-test-2'
144
- db.info["db_name"].should == 'couchrest-test-2'
148
+ expect(db.name).to eq 'couchrest-test-2'
149
+ expect(db.info["db_name"]).to eq 'couchrest-test-2'
145
150
  end
146
151
  end
147
152
 
148
153
  describe "successfully creating a database" do
149
154
  it "should start without a database" do
150
- @cr.databases.should_not include(TESTDB)
155
+ expect(@cr.databases).not_to include(TESTDB)
151
156
  end
152
157
  it "should return the created database" do
153
158
  db = @cr.create_db(TESTDB)
154
- db.should be_an_instance_of(CouchRest::Database)
159
+ expect(db).to be_an_instance_of(CouchRest::Database)
155
160
  end
156
161
  it "should create the database" do
157
162
  db = @cr.create_db(TESTDB)
158
- @cr.databases.should include(TESTDB)
163
+ expect(@cr.databases).to include(TESTDB)
159
164
  end
160
165
  end
161
166
 
@@ -164,34 +169,23 @@ describe CouchRest do
164
169
  db = @cr.create_db(TESTDB)
165
170
  end
166
171
  it "should start with the test database" do
167
- @cr.databases.should include(TESTDB)
172
+ expect(@cr.databases).to include(TESTDB)
168
173
  end
169
174
  it "should PUT the database and raise an error" do
170
- lambda{
175
+ expect {
171
176
  @cr.create_db(TESTDB)
172
- }.should raise_error(RestClient::Request::RequestFailed)
177
+ }.to raise_error(CouchRest::PreconditionFailed)
173
178
  end
174
179
  end
175
180
 
176
- describe "using a proxy for RestClient connections" do
177
- it "should set proxy url for RestClient" do
181
+ describe "using a proxy for connections" do
182
+ it "should set proxy url" do
178
183
  CouchRest.proxy 'http://localhost:8888/'
179
- proxy_uri = URI.parse(RestClient.proxy)
180
- proxy_uri.host.should eql( 'localhost' )
181
- proxy_uri.port.should eql( 8888 )
184
+ proxy_uri = URI.parse(CouchRest::Connection.proxy)
185
+ expect(proxy_uri.host).to eql( 'localhost' )
186
+ expect(proxy_uri.port).to eql( 8888 )
182
187
  CouchRest.proxy nil
183
188
  end
184
189
  end
185
190
 
186
- describe "Including old ExtendedDocument library" do
187
-
188
- it "should raise an exception" do
189
- lambda do
190
- class TestDoc < CouchRest::ExtendedDocument
191
- attr_reader :fail
192
- end
193
- end.should raise_error(RuntimeError)
194
- end
195
-
196
- end
197
191
  end
@@ -4,22 +4,24 @@ describe CouchRest::Database do
4
4
  before(:each) do
5
5
  @cr = CouchRest.new(COUCHHOST)
6
6
  @db = @cr.database(TESTDB)
7
- @db.delete! rescue RestClient::ResourceNotFound
7
+ @db.delete! rescue CouchRest::NotFound
8
8
  @db = @cr.create_db(TESTDB) # rescue nil
9
9
  end
10
10
 
11
11
  describe "database name including slash" do
12
12
  it "should escape the name in the URI" do
13
13
  db = @cr.database("foo/bar")
14
- db.name.should == "foo/bar"
15
- db.root.should == "#{COUCHHOST}/foo%2Fbar"
16
- db.uri.should == "/foo%2Fbar"
14
+ expect(db.name).to eq "foo/bar"
15
+ expect(db.root).to eq URI("#{COUCHHOST}/foo%2Fbar")
16
+ expect(db.uri).to eq URI("#{COUCHHOST}/foo%2Fbar")
17
+ expect(db.to_s).to eq "#{COUCHHOST}/foo%2Fbar"
18
+ expect(db.path).to eq "/foo%2Fbar"
17
19
  end
18
20
  end
19
21
 
20
22
  describe "#info" do
21
23
  it "should request basic database data" do
22
- @db.info['db_name'].should eql(TESTDB)
24
+ expect(@db.info['db_name']).to eql(TESTDB)
23
25
  end
24
26
  end
25
27
 
@@ -34,23 +36,23 @@ describe CouchRest::Database do
34
36
  end
35
37
  it "should return the result of the temporary function" do
36
38
  rs = @db.temp_view(@temp_view)
37
- rs['rows'].select{|r|r['key'] == 'wild' && r['value'] == 'and random'}.length.should == 1
39
+ expect(rs['rows'].select{|r|r['key'] == 'wild' && r['value'] == 'and random'}.length).to eq 1
38
40
  end
39
41
  it "should work with a range" do
40
42
  rs = @db.temp_view(@temp_view, :startkey => "b", :endkey => "z")
41
- rs['rows'].length.should == 2
43
+ expect(rs['rows'].length).to eq 2
42
44
  end
43
45
  it "should work with a key" do
44
46
  rs = @db.temp_view(@temp_view, :key => "wild")
45
- rs['rows'].length.should == 1
47
+ expect(rs['rows'].length).to eq 1
46
48
  end
47
49
  it "should work with a limit" do
48
50
  rs = @db.temp_view(@temp_view, :limit => 1)
49
- rs['rows'].length.should == 1
51
+ expect(rs['rows'].length).to eq 1
50
52
  end
51
53
  it "should work with multi-keys" do
52
54
  rs = @db.temp_view(@temp_view, :keys => ["another", "wild"])
53
- rs['rows'].length.should == 2
55
+ expect(rs['rows'].length).to eq 2
54
56
  end
55
57
  end
56
58
 
@@ -64,8 +66,8 @@ describe CouchRest::Database do
64
66
  end
65
67
  it "should return the result of the temporary function" do
66
68
  rs = @db.temp_view(:map => "function(doc){emit(doc.beverage, doc.count)}", :reduce => "function(beverage,counts){return sum(counts)}")
67
- # rs.should == 'x'
68
- rs['rows'][0]['value'].should == 9
69
+ # expect(rs).to eq 'x'
70
+ expect(rs['rows'][0]['value']).to eq 9
69
71
  end
70
72
  end
71
73
 
@@ -91,10 +93,10 @@ describe CouchRest::Database do
91
93
  {"word" => "and again"}
92
94
  ])
93
95
  r = @db.view('test/test')
94
- r['total_rows'].should == 1
96
+ expect(r['total_rows']).to eq 1
95
97
  end
96
98
  it "should round trip" do
97
- @db.get("_design/test")['views'].should == @view
99
+ expect(@db.get("_design/test")['views']).to eq @view
98
100
  end
99
101
  end
100
102
 
@@ -115,60 +117,60 @@ describe CouchRest::Database do
115
117
  ])
116
118
  end
117
119
  it "should have the view" do
118
- @db.get('_design/first')['views']['test']['map'].should include("for(var w in doc)")
120
+ expect(@db.get('_design/first')['views']['test']['map']).to include("for(var w in doc)")
119
121
  end
120
122
  it "should list from the view" do
121
123
  rs = @db.view('first/test')
122
- rs['rows'].select{|r|r['key'] == 'wild' && r['value'] == 'and random'}.length.should == 1
124
+ expect(rs['rows'].select{|r|r['key'] == 'wild' && r['value'] == 'and random'}.length).to eq 1
123
125
  end
124
126
  it "should work with a range" do
125
127
  rs = @db.view('first/test', :startkey => "b", :endkey => "z")
126
- rs['rows'].length.should == 2
128
+ expect(rs['rows'].length).to eq 2
127
129
  end
128
130
  it "should work with a key" do
129
131
  rs = @db.view('first/test', :key => "wild")
130
- rs['rows'].length.should == 1
132
+ expect(rs['rows'].length).to eq 1
131
133
  end
132
134
  it "should work with a limit" do
133
135
  rs = @db.view('first/test', :limit => 1)
134
- rs['rows'].length.should == 1
136
+ expect(rs['rows'].length).to eq 1
135
137
  end
136
138
  it "should work with multi-keys" do
137
139
  rs = @db.view('first/test', :keys => ["another", "wild"])
138
- rs['rows'].length.should == 2
140
+ expect(rs['rows'].length).to eq 2
139
141
  end
140
142
  it "should not modify given params" do
141
143
  original_params = {:keys => ["another", "wild"]}
142
144
  params = original_params.dup
143
- rs = @db.view('first/test', params)
144
- params.should == original_params
145
+ @db.view('first/test', params)
146
+ expect(params).to eq original_params
145
147
  end
146
148
  it "should accept a block" do
147
149
  rows = []
148
150
  rs = @db.view('first/test', :include_docs => true) do |row|
149
151
  rows << row
150
152
  end
151
- rows.length.should == 3
152
- rs["total_rows"].should == 3
153
+ expect(rows.length).to eq 3
154
+ expect(rs["total_rows"]).to eq 3
153
155
  end
154
156
  it "should accept a block with several params" do
155
157
  rows = []
156
158
  rs = @db.view('first/test', :include_docs => true, :limit => 2) do |row|
157
159
  rows << row
158
160
  end
159
- rows.length.should == 2
161
+ expect(rows.length).to eq 2
160
162
  end
161
163
  it "should accept a payload" do
162
164
  rs = @db.view('first/test', {}, :keys => ["another", "wild"])
163
- rs['rows'].length.should == 2
165
+ expect(rs['rows'].length).to eq 2
164
166
  end
165
167
  it "should accept a payload with block" do
166
168
  rows = []
167
169
  rs = @db.view('first/test', {:include_docs => true}, :keys => ["another", "wild"]) do |row|
168
170
  rows << row
169
171
  end
170
- rows.length.should == 2
171
- rows.first['doc']['another'].should_not be_empty
172
+ expect(rows.length).to eq 2
173
+ expect(rows.first['doc']['another']).not_to be_empty
172
174
  end
173
175
  end
174
176
 
@@ -186,25 +188,25 @@ describe CouchRest::Database do
186
188
 
187
189
  it "should produce a basic list of changes" do
188
190
  c = @db.changes
189
- c['results'].length.should eql(3)
191
+ expect(c['results'].length).to eql(3)
190
192
  end
191
193
 
192
194
  it "should include all changes in continuous feed" do
193
195
  changes = []
194
196
  begin
195
- c = @db.changes("feed" => "continuous", "since" => "0") do |change|
197
+ @db.changes("feed" => "continuous", "since" => "0") do |change|
196
198
  changes << change
197
199
  raise RuntimeError.new # escape from infinite loop
198
200
  end
199
201
  rescue RuntimeError
200
202
  end
201
- changes.first["seq"].should eql(1)
203
+ expect(changes.first["seq"]).to eql(1)
202
204
  end
203
205
 
204
206
  it "should provide id of last document" do
205
207
  c = @db.changes
206
208
  doc = @db.get(c['results'].last['id'])
207
- doc['another'].should_not be_empty
209
+ expect(doc['another']).not_to be_empty
208
210
  end
209
211
  end
210
212
 
@@ -216,10 +218,10 @@ describe CouchRest::Database do
216
218
  end
217
219
  it "should get the document" do
218
220
  doc = @db.get(@r['id'])
219
- doc['lemons'].should == 'from texas'
221
+ expect(doc['lemons']).to eq 'from texas'
220
222
  end
221
223
  it "should work with a funky id" do
222
- @db.get(@docid)['will-exist'].should == 'here'
224
+ expect(@db.get(@docid)['will-exist']).to eq 'here'
223
225
  end
224
226
  end
225
227
 
@@ -231,16 +233,17 @@ describe CouchRest::Database do
231
233
  {"another" => ["set","of","keys"]}
232
234
  ])
233
235
  rs.each do |r|
234
- @db.get(r['id']).rev.should == r["rev"]
236
+ expect(@db.get(r['id']).rev).to eq r["rev"]
235
237
  end
236
238
  end
237
239
 
238
240
  it "should use uuids when ids aren't provided" do
239
- @db.server.stub!(:next_uuid).and_return('asdf6sgadkfhgsdfusdf')
241
+ @db.server.stub(:next_uuid).and_return('asdf6sgadkfhgsdfusdf')
240
242
 
241
243
  docs = [{'key' => 'value'}, {'_id' => 'totally-uniq'}]
242
244
  id_docs = [{'key' => 'value', '_id' => 'asdf6sgadkfhgsdfusdf'}, {'_id' => 'totally-uniq'}]
243
- CouchRest.should_receive(:post).with("#{COUCHHOST}/couchrest-test/_bulk_docs", {:docs => id_docs})
245
+
246
+ expect(@db.connection).to receive(:post).with("/couchrest-test/_bulk_docs", {:docs => id_docs})
244
247
 
245
248
  @db.bulk_save(docs)
246
249
  end
@@ -252,22 +255,22 @@ describe CouchRest::Database do
252
255
  {"another" => ["set","of","keys"]}
253
256
  ])
254
257
  rs.each do |r|
255
- @db.get(r['id']).rev.should == r["rev"]
258
+ expect(@db.get(r['id']).rev).to eq r["rev"]
256
259
  end
257
260
  end
258
261
 
259
262
  it "should empty the bulk save cache if no documents are given" do
260
263
  @db.save_doc({"_id" => "bulk_cache_1", "val" => "test"}, true)
261
- lambda do
264
+ expect do
262
265
  @db.get('bulk_cache_1')
263
- end.should raise_error(RestClient::ResourceNotFound)
266
+ end.to raise_error(CouchRest::NotFound)
264
267
  @db.bulk_save
265
- @db.get("bulk_cache_1")["val"].should == "test"
268
+ expect(@db.get("bulk_cache_1")["val"]).to eq "test"
266
269
  end
267
270
 
268
271
  it "should make an atomic write when all_or_nothing is set" do
269
272
  docs = [{"_id" => "oneB", "wild" => "and random"}, {"_id" => "twoB", "mild" => "yet local"}]
270
- CouchRest.should_receive(:post).with("#{COUCHHOST}/couchrest-test/_bulk_docs", {:all_or_nothing => true, :docs => docs})
273
+ expect(@db.connection).to receive(:post).with("/couchrest-test/_bulk_docs", {:all_or_nothing => true, :docs => docs})
271
274
 
272
275
  @db.bulk_save(docs, false, true)
273
276
  end
@@ -280,25 +283,25 @@ describe CouchRest::Database do
280
283
  {"_id" => "free", "mild" => "yet local"},
281
284
  {"another" => ["set","of","keys"]}
282
285
  ])
283
- rescue RestClient::RequestFailed => e
286
+ rescue CouchRest::RequestFailed => e
284
287
  # soon CouchDB will provide _which_ docs conflicted
285
- MultiJson.decode(e.response.body)['error'].should == 'conflict'
288
+ expect(MultiJson.decode(e.response.body)['error']).to eq 'conflict'
286
289
  end
287
290
  end
288
291
  end
289
292
 
290
293
  describe "new document without an id" do
291
294
  it "should start empty" do
292
- @db.documents["total_rows"].should == 0
295
+ expect(@db.documents["total_rows"]).to eq 0
293
296
  end
294
297
  it "should create the document and return the id" do
295
298
  r = @db.save_doc({'lemons' => 'from texas', 'and' => 'spain'})
296
299
  r2 = @db.get(r['id'])
297
- r2["lemons"].should == "from texas"
300
+ expect(r2["lemons"]).to eq "from texas"
298
301
  end
299
302
  it "should use PUT with UUIDs" do
300
- CouchRest.should_receive(:put).and_return({"ok" => true, "id" => "100", "rev" => "55"})
301
- r = @db.save_doc({'just' => ['another document']})
303
+ expect(@db.connection).to receive(:put).and_return({"ok" => true, "id" => "100", "rev" => "55"})
304
+ r = @db.save_doc({'just' => ['another document']})
302
305
  end
303
306
 
304
307
  end
@@ -321,11 +324,11 @@ describe CouchRest::Database do
321
324
 
322
325
  # Depreacated
323
326
  # it "should get the attachment with the doc's _id" do
324
- # @db.fetch_attachment("mydocwithattachment", "test.html").should == @attach
327
+ # expect(@db.fetch_attachment("mydocwithattachment", "test.html")).to eq @attach
325
328
  # end
326
329
 
327
330
  it "should get the attachment with the doc itself" do
328
- @db.fetch_attachment(@db.get('mydocwithattachment'), 'test.html').should == @attach
331
+ expect(@db.fetch_attachment(@db.get('mydocwithattachment'), 'test.html')).to eq @attach
329
332
  end
330
333
  end
331
334
 
@@ -339,12 +342,12 @@ describe CouchRest::Database do
339
342
  end
340
343
  it "should save the attachment to a new doc" do
341
344
  r = @db.put_attachment({'_id' => 'attach-this'}, 'couchdb.png', image = @file.read, {:content_type => 'image/png'})
342
- r['ok'].should == true
345
+ expect(r['ok']).to be_true
343
346
  doc = @db.get("attach-this")
344
347
  attachment = @db.fetch_attachment(doc, "couchdb.png")
345
- (attachment == image).should be_true
348
+ expect((attachment == image)).to be_true
346
349
  #if attachment.respond_to?(:net_http_res)
347
- # attachment.net_http_res.body.should == image
350
+ # expect(attachment.net_http_res.body).to eq image
348
351
  #end
349
352
  end
350
353
  end
@@ -366,11 +369,11 @@ describe CouchRest::Database do
366
369
  @doc = @db.get("mydocwithattachment")
367
370
  end
368
371
  it "should save and be indicated" do
369
- @doc['_attachments']['test.html']['length'].should == @attach.length
372
+ expect(@doc['_attachments']['test.html']['length']).to eq @attach.length
370
373
  end
371
374
  it "should be there" do
372
375
  attachment = @db.fetch_attachment(@doc,"test.html")
373
- attachment.should == @attach
376
+ expect(attachment).to eq @attach
374
377
  end
375
378
  end
376
379
 
@@ -387,15 +390,15 @@ describe CouchRest::Database do
387
390
  }
388
391
  }
389
392
  @db.save_doc(doc)
390
- doc['_rev'].should_not be_nil
393
+ expect(doc['_rev']).not_to be_nil
391
394
  doc['field'] << 'another value'
392
- @db.save_doc(doc)["ok"].should be_true
395
+ expect(@db.save_doc(doc)["ok"]).to be_true
393
396
  end
394
397
 
395
398
  it 'should be there' do
396
399
  doc = @db.get('mydocwithattachment')
397
400
  attachment = @db.fetch_attachment(doc, 'test.html')
398
- Base64.decode64(attachment).should == @attach
401
+ expect(Base64.decode64(attachment)).to eq @attach
399
402
  end
400
403
  end
401
404
 
@@ -421,16 +424,16 @@ describe CouchRest::Database do
421
424
  @doc = @db.get("mydocwithattachment")
422
425
  end
423
426
  it "should save and be indicated" do
424
- @doc['_attachments']['test.html']['length'].should == @attach.length
425
- @doc['_attachments']['other.html']['length'].should == @attach2.length
427
+ expect(@doc['_attachments']['test.html']['length']).to eq @attach.length
428
+ expect(@doc['_attachments']['other.html']['length']).to eq @attach2.length
426
429
  end
427
430
  it "should be there" do
428
431
  attachment = @db.fetch_attachment(@doc,"test.html")
429
- attachment.should == @attach
432
+ expect(attachment).to eq @attach
430
433
  end
431
434
  it "should be there" do
432
435
  attachment = @db.fetch_attachment(@doc,"other.html")
433
- attachment.should == @attach2
436
+ expect(attachment).to eq @attach2
434
437
  end
435
438
  end
436
439
 
@@ -449,10 +452,10 @@ describe CouchRest::Database do
449
452
  @doc = @db.get('mydocwithattachment')
450
453
  end
451
454
  it "should delete the attachment" do
452
- lambda { @db.fetch_attachment(@doc,'test.html') }.should_not raise_error
455
+ expect(lambda { @db.fetch_attachment(@doc,'test.html') }).not_to raise_error
453
456
  @db.delete_attachment(@doc, "test.html")
454
457
  @doc = @db.get('mydocwithattachment') # avoid getting a 409
455
- lambda{ @db.fetch_attachment(@doc,'test.html')}.should raise_error
458
+ expect(lambda{ @db.fetch_attachment(@doc,'test.html')}).to raise_error
456
459
  end
457
460
 
458
461
  it "should force a delete even if we get a 409" do
@@ -460,8 +463,8 @@ describe CouchRest::Database do
460
463
  @db.put_attachment(@doc, 'test', File.open(File.join(FIXTURE_PATH, 'attachments', 'test.html')).read)
461
464
  # at this point the revision number changed, if we try to save doc one more time
462
465
  # we would get a 409.
463
- lambda{ @db.save_doc(@doc) }.should raise_error
464
- lambda{ @db.delete_attachment(@doc, "test", true) }.should_not raise_error
466
+ expect(lambda{ @db.save_doc(@doc) }).to raise_error
467
+ expect(lambda{ @db.delete_attachment(@doc, "test", true) }).not_to raise_error
465
468
  end
466
469
  end
467
470
 
@@ -481,12 +484,12 @@ describe CouchRest::Database do
481
484
  end
482
485
  it "should save and be indicated" do
483
486
  doc = @db.get(@docid)
484
- doc['_attachments']['http://example.com/stuff.cgi?things=and%20stuff']['length'].should == @attach.length
487
+ expect(doc['_attachments']['http://example.com/stuff.cgi?things=and%20stuff']['length']).to eq @attach.length
485
488
  end
486
489
  it "should be there" do
487
490
  doc = @db.get(@docid)
488
491
  attachment = @db.fetch_attachment(doc,"http://example.com/stuff.cgi?things=and%20stuff")
489
- attachment.should == @attach
492
+ expect(attachment).to eq @attach
490
493
  end
491
494
  end
492
495
 
@@ -494,8 +497,8 @@ describe CouchRest::Database do
494
497
  it "should create the document" do
495
498
  @docid = "http://example.com/stuff.cgi?things=and%20stuff"
496
499
  @db.save_doc({'_id' => @docid, 'will-exist' => 'here'})
497
- lambda{@db.save_doc({'_id' => @docid})}.should raise_error(RestClient::Request::RequestFailed)
498
- @db.get(@docid)['will-exist'].should == 'here'
500
+ expect(lambda{@db.save_doc({'_id' => @docid})}).to raise_error(CouchRest::RequestFailed)
501
+ expect(@db.get(@docid)['will-exist']).to eq 'here'
499
502
  end
500
503
  end
501
504
 
@@ -503,7 +506,7 @@ describe CouchRest::Database do
503
506
  it "should start without the document" do
504
507
  # r = @db.save_doc({'lemons' => 'from texas', 'and' => 'spain'})
505
508
  @db.documents['rows'].each do |doc|
506
- doc['id'].should_not == 'my-doc'
509
+ expect(doc['id']).not_to eq 'my-doc'
507
510
  end
508
511
  # should_not include({'_id' => 'my-doc'})
509
512
  # this needs to be a loop over docs on content with the post
@@ -511,7 +514,7 @@ describe CouchRest::Database do
511
514
  end
512
515
  it "should create the document" do
513
516
  @db.save_doc({'_id' => 'my-doc', 'will-exist' => 'here'})
514
- lambda{@db.save_doc({'_id' => 'my-doc'})}.should raise_error(RestClient::Request::RequestFailed)
517
+ expect(lambda{@db.save_doc({'_id' => 'my-doc'})}).to raise_error(CouchRest::RequestFailed)
515
518
  end
516
519
  end
517
520
 
@@ -523,26 +526,26 @@ describe CouchRest::Database do
523
526
  @db.save_doc({'_id' => @docid, 'now' => 'save'})
524
527
  end
525
528
  it "should start with the document" do
526
- @doc['will-exist'].should == 'here'
527
- @db.get(@docid)['now'].should == 'save'
529
+ expect(@doc['will-exist']).to eq 'here'
530
+ expect(@db.get(@docid)['now']).to eq 'save'
528
531
  end
529
532
  it "should save with url id" do
530
533
  doc = @db.get(@docid)
531
534
  doc['yaml'] = ['json', 'word.']
532
535
  @db.save_doc doc
533
- @db.get(@docid)['yaml'].should == ['json', 'word.']
536
+ expect(@db.get(@docid)['yaml']).to eq ['json', 'word.']
534
537
  end
535
538
  it "should fail to resave without the rev" do
536
539
  @doc['them-keys'] = 'huge'
537
540
  @doc['_rev'] = 'wrong'
538
541
  # @db.save_doc(@doc)
539
- lambda {@db.save_doc(@doc)}.should raise_error
542
+ expect(lambda {@db.save_doc(@doc)}).to raise_error
540
543
  end
541
544
  it "should update the document" do
542
545
  @doc['them-keys'] = 'huge'
543
546
  @db.save_doc(@doc)
544
547
  now = @db.get('my-doc')
545
- now['them-keys'].should == 'huge'
548
+ expect(now['them-keys']).to eq 'huge'
546
549
  end
547
550
  end
548
551
 
@@ -550,7 +553,7 @@ describe CouchRest::Database do
550
553
  it "stores documents in a database-specific cache" do
551
554
  td = {"_id" => "btd1", "val" => "test"}
552
555
  @db.save_doc(td, true)
553
- @db.instance_variable_get("@bulk_save_cache").should == [td]
556
+ expect(@db.instance_variable_get("@bulk_save_cache")).to eq [td]
554
557
 
555
558
  end
556
559
 
@@ -560,17 +563,17 @@ describe CouchRest::Database do
560
563
  td2 = {"_id" => "td2", "val" => 4}
561
564
  @db.save_doc(td1, true)
562
565
  @db.save_doc(td2, true)
563
- lambda do
566
+ expect do
564
567
  @db.get(td1["_id"])
565
- end.should raise_error(RestClient::ResourceNotFound)
566
- lambda do
568
+ end.to raise_error(CouchRest::NotFound)
569
+ expect do
567
570
  @db.get(td2["_id"])
568
- end.should raise_error(RestClient::ResourceNotFound)
571
+ end.to raise_error(CouchRest::NotFound)
569
572
  td3 = {"_id" => "td3", "val" => "foo"}
570
573
  @db.save_doc(td3, true)
571
- @db.get(td1["_id"])["val"].should == td1["val"]
572
- @db.get(td2["_id"])["val"].should == td2["val"]
573
- @db.get(td3["_id"])["val"].should == td3["val"]
574
+ expect(@db.get(td1["_id"])["val"]).to eq td1["val"]
575
+ expect(@db.get(td2["_id"])["val"]).to eq td2["val"]
576
+ expect(@db.get(td3["_id"])["val"]).to eq td3["val"]
574
577
  end
575
578
 
576
579
  it "clears the bulk save cache the first time a non bulk save is requested" do
@@ -578,12 +581,12 @@ describe CouchRest::Database do
578
581
  td2 = {"_id" => "steve", "val" => 3}
579
582
  @db.bulk_save_cache_limit = 50
580
583
  @db.save_doc(td1, true)
581
- lambda do
584
+ expect do
582
585
  @db.get(td1["_id"])
583
- end.should raise_error(RestClient::ResourceNotFound)
586
+ end.to raise_error(CouchRest::NotFound)
584
587
  @db.save_doc(td2)
585
- @db.get(td1["_id"])["val"].should == td1["val"]
586
- @db.get(td2["_id"])["val"].should == td2["val"]
588
+ expect(@db.get(td1["_id"])["val"]).to eq td1["val"]
589
+ expect(@db.get(td2["_id"])["val"]).to eq td2["val"]
587
590
  end
588
591
  end
589
592
 
@@ -595,24 +598,24 @@ describe CouchRest::Database do
595
598
  end
596
599
  it "should work" do
597
600
  doc = @db.get(@r['id'])
598
- doc['and'].should == 'spain'
601
+ expect(doc['and']).to eq 'spain'
599
602
  @db.delete_doc doc
600
- lambda{@db.get @r['id']}.should raise_error
603
+ expect(lambda{@db.get @r['id']}).to raise_error
601
604
  end
602
605
  it "should work with uri id" do
603
606
  doc = @db.get(@docid)
604
607
  @db.delete_doc doc
605
- lambda{@db.get @docid}.should raise_error
608
+ expect(lambda{@db.get @docid}).to raise_error
606
609
  end
607
610
  it "should fail without an _id" do
608
- lambda{@db.delete_doc({"not"=>"a real doc"})}.should raise_error(ArgumentError)
611
+ expect(lambda{@db.delete_doc({"not"=>"a real doc"})}).to raise_error(ArgumentError)
609
612
  end
610
613
  it "should defer actual deletion when using bulk save" do
611
614
  doc = @db.get(@docid)
612
615
  @db.delete_doc doc, true
613
- lambda{@db.get @docid}.should_not raise_error
616
+ expect(lambda{@db.get @docid}).not_to raise_error
614
617
  @db.bulk_save
615
- lambda{@db.get @docid}.should raise_error
618
+ expect(lambda{@db.get @docid}).to raise_error
616
619
  end
617
620
 
618
621
  end
@@ -628,10 +631,10 @@ describe CouchRest::Database do
628
631
  @db.update_doc @id do |doc|
629
632
  doc['upvotes'] += 1
630
633
  end
631
- @db.get(@id)['upvotes'].should == 11
634
+ expect(@db.get(@id)['upvotes']).to eq 11
632
635
  end
633
636
  it "should fail if update_limit is reached" do
634
- lambda do
637
+ expect do
635
638
  @db.update_doc @id do |doc|
636
639
  # modify and save the doc so that a collision happens
637
640
  conflicting_doc = @db.get @id
@@ -641,12 +644,12 @@ describe CouchRest::Database do
641
644
  # then try saving it through the update
642
645
  doc['upvotes'] += 1
643
646
  end
644
- end.should raise_error(RestClient::RequestFailed)
647
+ end.to raise_error(CouchRest::RequestFailed)
645
648
  end
646
649
  it "should not fail if update_limit is not reached" do
647
650
  limit = 5
648
- lambda do
649
- @db.update_doc @id do |doc|
651
+ expect do
652
+ @db.update_doc @id do |doc|
650
653
  # same as the last spec except we're only forcing 5 conflicts
651
654
  if limit > 0
652
655
  conflicting_doc = @db.get @id
@@ -657,8 +660,8 @@ describe CouchRest::Database do
657
660
  doc['upvotes'] += 1
658
661
  doc
659
662
  end
660
- end.should_not raise_error
661
- @db.get(@id)['upvotes'].should == 16
663
+ end.not_to raise_error
664
+ expect(@db.get(@id)['upvotes']).to eq 16
662
665
  end
663
666
  end
664
667
 
@@ -672,10 +675,10 @@ describe CouchRest::Database do
672
675
  it "should work" do
673
676
  @db.copy_doc @doc, @docid
674
677
  newdoc = @db.get(@docid)
675
- newdoc['artist'].should == 'Zappa'
678
+ expect(newdoc['artist']).to eq 'Zappa'
676
679
  end
677
680
  it "should fail without an _id" do
678
- lambda{@db.copy_doc({"not"=>"a real doc"})}.should raise_error(ArgumentError)
681
+ expect(lambda{@db.copy_doc({"not"=>"a real doc"})}).to raise_error(ArgumentError)
679
682
  end
680
683
  end
681
684
  describe "to an existing location" do
@@ -683,19 +686,19 @@ describe CouchRest::Database do
683
686
  @db.save_doc({'_id' => @docid, 'will-exist' => 'here'})
684
687
  end
685
688
  it "should fail without a rev" do
686
- lambda{@db.copy_doc @doc, @docid}.should raise_error(RestClient::RequestFailed)
689
+ expect(lambda{@db.copy_doc @doc, @docid}).to raise_error(CouchRest::RequestFailed)
687
690
  end
688
691
  it "should succeed with a rev" do
689
692
  @to_be_overwritten = @db.get(@docid)
690
693
  @db.copy_doc @doc, "#{@docid}?rev=#{@to_be_overwritten['_rev']}"
691
694
  newdoc = @db.get(@docid)
692
- newdoc['artist'].should == 'Zappa'
695
+ expect(newdoc['artist']).to eq 'Zappa'
693
696
  end
694
697
  it "should succeed given the doc to overwrite" do
695
698
  @to_be_overwritten = @db.get(@docid)
696
699
  @db.copy_doc @doc, @to_be_overwritten
697
700
  newdoc = @db.get(@docid)
698
- newdoc['artist'].should == 'Zappa'
701
+ expect(newdoc['artist']).to eq 'Zappa'
699
702
  end
700
703
  end
701
704
  end
@@ -706,9 +709,9 @@ describe CouchRest::Database do
706
709
  @db.save_doc({'another' => 'doc', 'will-exist' => 'anywhere'})
707
710
  end
708
711
  ds = @db.documents
709
- ds['rows'].should be_an_instance_of(Array)
710
- ds['rows'][0]['id'].should_not be_nil
711
- ds['total_rows'].should == 5
712
+ expect(ds['rows']).to be_an_instance_of(Array)
713
+ expect(ds['rows'][0]['id']).not_to be_nil
714
+ expect(ds['total_rows']).to eq 5
712
715
  end
713
716
 
714
717
  # This is redundant with the latest view code, but left in place for prosterity.
@@ -720,28 +723,28 @@ describe CouchRest::Database do
720
723
  end
721
724
  it "should list documents with keys and such" do
722
725
  ds = @db.documents
723
- ds['rows'].should be_an_instance_of(Array)
724
- ds['rows'][0]['id'].should == "doc0"
725
- ds['total_rows'].should == 9
726
+ expect(ds['rows']).to be_an_instance_of(Array)
727
+ expect(ds['rows'][0]['id']).to eq "doc0"
728
+ expect(ds['total_rows']).to eq 9
726
729
  end
727
730
  it "should take query params" do
728
731
  ds = @db.documents(:startkey => 'doc0', :endkey => 'doc3')
729
- ds['rows'].length.should == 4
732
+ expect(ds['rows'].length).to eq 4
730
733
  ds = @db.documents(:key => 'doc0')
731
- ds['rows'].length.should == 1
734
+ expect(ds['rows'].length).to eq 1
732
735
  end
733
736
  it "should work with multi-key" do
734
737
  rs = @db.documents :keys => ["doc0", "doc7"]
735
- rs['rows'].length.should == 2
738
+ expect(rs['rows'].length).to eq 2
736
739
  end
737
740
  it "should work with include_docs" do
738
741
  ds = @db.documents(:startkey => 'doc0', :endkey => 'doc3', :include_docs => true)
739
- ds['rows'][0]['doc']['another'].should == "doc"
742
+ expect(ds['rows'][0]['doc']['another']).to eq "doc"
740
743
  end
741
744
  it "should have the bulk_load macro" do
742
745
  rs = @db.bulk_load ["doc0", "doc7"]
743
- rs['rows'].length.should == 2
744
- rs['rows'][0]['doc']['another'].should == "doc"
746
+ expect(rs['rows'].length).to eq 2
747
+ expect(rs['rows'][0]['doc']['another']).to eq "doc"
745
748
  end
746
749
  end
747
750
 
@@ -750,20 +753,21 @@ describe CouchRest::Database do
750
753
  # Can cause failures in recent versions of CouchDB, just ensure
751
754
  # we actually send the right command.
752
755
  it "should compact the database" do
753
- CouchRest.should_receive(:post).with("#{@cr.uri}/couchrest-test/_compact")
754
- @cr.database('couchrest-test').compact!
756
+ db = @cr.database('couchrest-test')
757
+ expect(db.connection).to receive(:post).with("/couchrest-test/_compact")
758
+ db.compact!
755
759
  end
756
760
  end
757
761
 
758
762
  describe "deleting a database" do
759
763
  it "should start with the test database" do
760
- @cr.databases.should include('couchrest-test')
764
+ expect(@cr.databases).to include('couchrest-test')
761
765
  end
762
766
  it "should delete the database" do
763
767
  db = @cr.database('couchrest-test')
764
768
  r = db.delete!
765
- r['ok'].should == true
766
- @cr.databases.should_not include('couchrest-test')
769
+ expect(r['ok']).to be_true
770
+ expect(@cr.databases).not_to include('couchrest-test')
767
771
  end
768
772
  end
769
773
 
@@ -779,8 +783,8 @@ describe CouchRest::Database do
779
783
  end
780
784
 
781
785
  it "should replicate via pulling" do
782
- CouchRest.should_receive(:post).with(
783
- include("/_replicate"),
786
+ expect(@other_db.connection).to receive(:post).with(
787
+ include("_replicate"),
784
788
  include(
785
789
  :create_target => false,
786
790
  :continuous => false,
@@ -792,8 +796,8 @@ describe CouchRest::Database do
792
796
  end
793
797
 
794
798
  it "should replicate via pushing" do
795
- CouchRest.should_receive(:post).with(
796
- include("/_replicate"),
799
+ expect(@db.connection).to receive(:post).with(
800
+ include("_replicate"),
797
801
  include(
798
802
  :create_target => false,
799
803
  :continuous => false,
@@ -805,8 +809,8 @@ describe CouchRest::Database do
805
809
  end
806
810
 
807
811
  it "should replacicate with a specific doc" do
808
- CouchRest.should_receive(:post).with(
809
- include("/_replicate"),
812
+ expect(@db.connection).to receive(:post).with(
813
+ include("_replicate"),
810
814
  include(
811
815
  :create_target => false,
812
816
  :continuous => false,
@@ -820,8 +824,8 @@ describe CouchRest::Database do
820
824
 
821
825
  describe "implicitly creating target" do
822
826
  it "should replicate via pulling" do
823
- CouchRest.should_receive(:post).with(
824
- include("/_replicate"),
827
+ expect(@other_db.connection).to receive(:post).with(
828
+ include("_replicate"),
825
829
  include(
826
830
  :create_target => true,
827
831
  :continuous => false
@@ -831,8 +835,8 @@ describe CouchRest::Database do
831
835
  end
832
836
 
833
837
  it "should replicate via pushing" do
834
- CouchRest.should_receive(:post).with(
835
- include("/_replicate"),
838
+ expect(@db.connection).to receive(:post).with(
839
+ include("_replicate"),
836
840
  include(
837
841
  :create_target => true,
838
842
  :continuous => false
@@ -844,8 +848,8 @@ describe CouchRest::Database do
844
848
 
845
849
  describe "continuous replication" do
846
850
  it "should replicate via pulling" do
847
- CouchRest.should_receive(:post).with(
848
- include("/_replicate"),
851
+ expect(@other_db.connection).to receive(:post).with(
852
+ include("_replicate"),
849
853
  include(
850
854
  :create_target => false,
851
855
  :continuous => true
@@ -855,8 +859,8 @@ describe CouchRest::Database do
855
859
  end
856
860
 
857
861
  it "should replicate via pushing" do
858
- CouchRest.should_receive(:post).with(
859
- include("/_replicate"),
862
+ expect(@db.connection).to receive(:post).with(
863
+ include("_replicate"),
860
864
  include(
861
865
  :create_target => false,
862
866
  :continuous => true
@@ -875,9 +879,9 @@ describe CouchRest::Database do
875
879
  end
876
880
 
877
881
  it "should just work fine" do
878
- @cr.databases.should_not include('couchrest-test-db_to_create')
882
+ expect(@cr.databases).not_to include('couchrest-test-db_to_create')
879
883
  @db.create!
880
- @cr.databases.should include('couchrest-test-db_to_create')
884
+ expect(@cr.databases).to include('couchrest-test-db_to_create')
881
885
  end
882
886
  end
883
887
 
@@ -890,15 +894,15 @@ describe CouchRest::Database do
890
894
  end
891
895
 
892
896
  it "should drop and recreate a database" do
893
- @cr.databases.should include(@db.name)
897
+ expect(@cr.databases).to include(@db.name)
894
898
  @db.recreate!
895
- @cr.databases.should include(@db.name)
899
+ expect(@cr.databases).to include(@db.name)
896
900
  end
897
901
 
898
902
  it "should recreate a db even though it doesn't exist" do
899
- @cr.databases.should_not include(@db2.name)
903
+ expect(@cr.databases).not_to include(@db2.name)
900
904
  @db2.recreate!
901
- @cr.databases.should include(@db2.name)
905
+ expect(@cr.databases).to include(@db2.name)
902
906
  end
903
907
  end
904
908
 
@@ -916,9 +920,9 @@ describe CouchRest::Database do
916
920
  if couchdb_lucene_available?
917
921
  result = @db.search('search/people', :q => 'name:J*')
918
922
  doc_ids = result['rows'].collect{ |row| row['id'] }
919
- doc_ids.size.should == 2
920
- doc_ids.should include('john')
921
- doc_ids.should include('jack')
923
+ expect(doc_ids.size).to eq 2
924
+ expect(doc_ids).to include('john')
925
+ expect(doc_ids).to include('jack')
922
926
  end
923
927
  end
924
928
  end