# frozen_string_literal: true require "rails_helper" describe User do context "model" do subject(:user) { create(:user) } it "should have a UUID" do expect(user.uuid).to be_a String expect(user.uuid.length).to eq 36 end end context ".authenticate" do it "should not authenticate users with invalid emails" do expect { User.authenticate("nothing@nothing.com", "hello") }.to raise_error(Postal::Errors::AuthenticationError) do |e| expect(e.error).to eq "InvalidEmailAddress" end end it "should not authenticate users with invalid passwords" do user = create(:user) expect { User.authenticate(user.email_address, "hello") }.to raise_error(Postal::Errors::AuthenticationError) do |e| expect(e.error).to eq "InvalidPassword" end end it "should authenticate valid users" do user = create(:user) auth_user = nil expect { auth_user = User.authenticate(user.email_address, "passw0rd") }.to_not raise_error expect(auth_user).to eq user end end end