An unofficial, mostly Bitwarden-compatible API server written in Ruby (Sinatra and ActiveRecord)
1require_relative "spec_helper.rb"
2
3@access_token = nil
4
5describe "db module" do
6 it "should support finding objects by columns" do
7 rand = SecureRandom.hex
8
9 u = User.new
10 u.email = "#{rand}@#{rand}.com"
11 u.password_hash = Bitwarden.hashPassword("blah", u.email,
12 User::DEFAULT_KDF_TYPE,
13 Bitwarden::KDF::DEFAULT_ITERATIONS[User::DEFAULT_KDF_TYPE]),
14 u.password_hint = nil
15 u.key = Bitwarden.makeEncKey(
16 Bitwarden.makeKey("blah", u.email, User::DEFAULT_KDF_TYPE,
17 Bitwarden::KDF::DEFAULT_ITERATIONS[User::DEFAULT_KDF_TYPE])
18 )
19 u.culture = "en-US"
20 u.save.must_equal true
21
22 uuid = u.uuid
23
24 User.where(email: u.email, culture: "en-US").all.first.uuid.must_equal uuid
25 User.find_by(email: u.email, culture: "en-US").uuid.must_equal uuid
26 User.find_by(email: u.email, culture: "en-NO").must_be_nil
27 end
28end