1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require_relative "test_helper"
require "minitest/autorun"
require_relative "../lib/ketchup/web"
class TestSole < Minitest::Test
def setup
Ketchup::DB[:tasks].delete
Ketchup::DB[:series].delete
Ketchup::DB[:users].delete
end
def test_sole_returns_single_record
Ketchup::User.create(login: "alice@example.com")
user = Ketchup::User.where(login: "alice@example.com").sole
assert_equal "alice@example.com", user.login
end
def test_sole_raises_on_no_records
assert_raises(Sequel::NoMatchingRow) do
Ketchup::User.where(login: "nobody@example.com").sole
end
end
def test_sole_raises_on_multiple_records
Ketchup::User.create(login: "alice@example.com")
Ketchup::User.create(login: "bob@example.com")
assert_raises(Sequel::Plugins::Sole::TooManyRows) do
Ketchup::User.dataset.sole
end
end
end