internal_spec.rb 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. require 'rails_helper'
  2. require 'lib/auth/backend_examples'
  3. RSpec.describe Auth::Internal do
  4. let(:user) { create(:user) }
  5. let(:instance) { described_class.new({ adapter: described_class.name }) }
  6. context '#valid?' do
  7. it_behaves_like 'Auth backend'
  8. it 'authenticates via password' do
  9. result = instance.valid?(user, 'zammad')
  10. expect(result).to be true
  11. end
  12. it "doesn't authenticate via plain password" do
  13. result = instance.valid?(user, user.password)
  14. expect(result).to be_falsy
  15. end
  16. it 'converts legacy sha2 passwords' do
  17. pw_plain = 'zammad'
  18. sha2_pw = PasswordHash.sha2(pw_plain)
  19. user = create(:user, password: sha2_pw)
  20. expect(PasswordHash.crypted?(user.password)).to be true
  21. expect(PasswordHash.legacy?(user.password, pw_plain)).to be true
  22. result = instance.valid?(user, pw_plain)
  23. expect(result).to be true
  24. expect(PasswordHash.legacy?(user.password, pw_plain)).to be false
  25. expect(PasswordHash.crypted?(user.password)).to be true
  26. end
  27. end
  28. end