spec/passrock/password_db_spec.rb in passrock-0.0.5 vs spec/passrock/password_db_spec.rb in passrock-0.0.8
- old
+ new
@@ -2,76 +2,39 @@
describe Passrock::PasswordDb do
let(:password_db) { passrock_password_db }
let(:private_key) { passrock_private_key }
- let(:valid_init_opts) { {:password_db => password_db, :private_key => private_key} }
+ let(:init_opts) { {:password_db => password_db, :private_key => private_key} }
let(:insecure_password) { 'password' }
let(:secure_password) { 'BoatActKnowsDog' }
-
- describe '.bcrypt_hash' do
-
- it 'calculates and returns the bcrypt password hash given a secret and salt' do
- secret = 'password'
- salt = private_key
- expect(described_class.bcrypt_hash(secret, salt)).to eq('$2a$07$c16iYVArVz3hYEvtakjiXO8jPyn2MxhVHlrY92EErobY/OCDNObhG')
- end
-
- end
-
-
- describe '#initialize' do
-
- context 'when password_db file does not exist' do
- it 'raises PasswordDbNotFoundError' do
- expect {
- described_class.new(:password_db => '/invalid/path/to/password_db', :private_key => private_key)
- }.to raise_error(Passrock::PasswordDbNotFoundError)
- end
- end
-
- end
-
- describe '#password_in_searchable_form' do
-
- it 'returns the given password in a searchable format' do
- subject = described_class.new(valid_init_opts)
- expect(subject.password_in_searchable_form(insecure_password)).to eq('+lR0p4OzjXJnta/4GGtqdaBQEFPQdjI=')
- end
-
- end
-
describe '#secure?' do
- let(:subject) { described_class.new(valid_init_opts) }
+ let(:subject) { described_class.new(init_opts) }
context 'when given password is present in the password database' do
it 'returns false' do
expect(subject.secure?(insecure_password)).to be_false
+
+ # sanity check other known insecure passwords
+ [ 'inIUfiWO13', 'PVGWpkf81', 'cSAuOcUW58', 'XxPRBGF11', 'WjNYUmGj72', 'P0RQU33SM3N3ST3r' ].each do |password|
+ expect(subject.secure?(password)).to be_false
+ end
end
end
context 'when given password does not appear in the password database' do
it 'returns true' do
expect(subject.secure?(secure_password)).to be_true
end
end
- context 'multiple sequential calls' do
- it 'does not error out' do
- expect {
- subject.secure?(secure_password)
- subject.secure?(insecure_password)
- }.to_not raise_error
- end
- end
-
end
describe '#insecure?' do
- let(:subject) { described_class.new(valid_init_opts) }
+ let(:subject) { described_class.new(init_opts) }
context 'when given password is present in the password database' do
it 'returns true' do
expect(subject.insecure?(insecure_password)).to be_true
end