Skip to content

Commit

Permalink
Add tests for order_by, limit, and variants. (#27)
Browse files Browse the repository at this point in the history
  • Loading branch information
asakatida committed Apr 7, 2018
1 parent 231b948 commit 539b2a6
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions spec/control_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -248,20 +248,42 @@ describe('control', function()
it('for each insert', function()
local cur = r.run(r.reql.for_each({1, 2, 3}, function(row) return r.reql_table.insert({id = row}) end))
assert.same({{deleted = 0, replaced = 0, unchanged = 0, errors = 0, skipped = 0, inserted = 3}}, assert.is_table(cur.to_array()))
assert.is_table(r.run(r.reql_table.delete()).to_array())
end)

it('count for each insert', function()
local cur = r.run(r.reql.for_each({1, 2, 3}, function(row) return r.reql_table.insert({id = row}) end))
assert.is_table(cur.to_array())
cur = r.run(r.reql_table.count())
assert.same({3}, assert.is_table(cur.to_array()))
assert.is_table(r.run(r.reql_table.delete()).to_array())
end)

it('for each update', function()
local cur = r.run(r.reql.for_each({1, 2, 3}, function(row) return r.reql_table.insert({id = row}) end))
assert.is_table(cur.to_array())
cur = r.run(r.reql.for_each({1, 2, 3}, function(row) return r.reql_table.update({foo = row}) end))
assert.same({{deleted = 0, replaced = 9, unchanged = 0, errors = 0, skipped = 0, inserted = 0}}, assert.is_table(cur.to_array()))
assert.is_table(r.run(r.reql_table.delete()).to_array())
end)

it('order_by limit variants', function()
local cur = r.run(
r.reql.for_each(
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
function(row) return r.reql_table.insert({id = row}) end
)
)
assert.is_equal(10, assert.is_table(cur.to_array())[1].inserted)
cur = r.run(r.reql_table.limit(5)'id')
assert.same(5, #assert.is_table(cur.to_array()))
cur = r.run(r.reql_table.order_by(r.reql.desc('id'))'id')
assert.same({{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}}, assert.is_table(cur.to_array()))
cur = r.run(r.reql_table.limit(5).order_by(r.reql.desc('id'))'id')
assert.same(5, #(assert.is_table(cur.to_array())[1]))
cur = r.run(r.reql_table.order_by(r.reql.desc('id')).limit(5)'id')
assert.same({{10, 9, 8, 7, 6}}, assert.is_table(cur.to_array()))
assert.same({10}, assert.is_table(r.run(r.reql_table.delete()'deleted').to_array()))
end)

it('for each insert with duplicates', function()
Expand All @@ -273,6 +295,7 @@ describe('control', function()
local res = assert.is_table(cur.to_array())
assert.is_equal(3, res[1].errors)
assert.is_equal(3, res[1].inserted)
assert.is_table(r.run(r.reql_table.delete()).to_array())
end)

it('for each update many', function()
Expand All @@ -284,5 +307,6 @@ describe('control', function()
assert.is_table(cur.to_array())
cur = r.run(r.reql.for_each({1, 2, 3}, function(row) return r.reql_table.update({foo = row}) end))
assert.same({{deleted = 0, replaced = 18, unchanged = 0, errors = 0, skipped = 0, inserted = 0}}, assert.is_table(cur.to_array()))
assert.is_table(r.run(r.reql_table.delete()).to_array())
end)
end)

0 comments on commit 539b2a6

Please sign in to comment.