From 6e752747372fcbf8477f3489fa2e6676611b9853 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Mon, 17 Oct 2016 22:53:53 +0800 Subject: [PATCH] access request tests (#772) * access request tests * map mailer spec update --- spec/factories/access_requests.rb | 7 +++++++ spec/mailers/map_mailer_spec.rb | 20 +++++++++++++++++--- spec/models/access_request_spec.rb | 26 +++++++++++++++++++++++++- 3 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 spec/factories/access_requests.rb diff --git a/spec/factories/access_requests.rb b/spec/factories/access_requests.rb new file mode 100644 index 00000000..40dde45a --- /dev/null +++ b/spec/factories/access_requests.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +FactoryGirl.define do + factory :access_request do + map + user + end +end diff --git a/spec/mailers/map_mailer_spec.rb b/spec/mailers/map_mailer_spec.rb index d4da119e..d72163f7 100644 --- a/spec/mailers/map_mailer_spec.rb +++ b/spec/mailers/map_mailer_spec.rb @@ -1,10 +1,24 @@ require 'rails_helper' RSpec.describe MapMailer, type: :mailer do - let(:map) { create(:map) } - let(:inviter) { create(:user) } - let(:invitee) { create(:user) } + describe 'access_request_email' do + let(:request) { create(:access_request) } + let(:map) { create(:map) } + let(:mail) { described_class.access_request_email(request, map) } + + it { expect(mail.from).to eq ['team@metamaps.cc'] } + it { expect(mail.to).to eq [map.user.email] } + it { expect(mail.subject).to match map.name } + it { expect(mail.body.encoded).to match map.name } + it { expect(mail.body.encoded).to match request.user.name } + it { expect(mail.body.encoded).to match 'Approve Request' } + it { expect(mail.body.encoded).to match 'Deny Request' } + end + describe 'invite_to_edit_email' do + let(:map) { create(:map) } + let(:inviter) { create(:user) } + let(:invitee) { create(:user) } let(:mail) { described_class.invite_to_edit_email(map, inviter, invitee) } it { expect(mail.from).to eq ['team@metamaps.cc'] } diff --git a/spec/models/access_request_spec.rb b/spec/models/access_request_spec.rb index 4119eaa6..98490bf7 100644 --- a/spec/models/access_request_spec.rb +++ b/spec/models/access_request_spec.rb @@ -1,5 +1,29 @@ require 'rails_helper' RSpec.describe AccessRequest, type: :model do - pending "add some examples to (or delete) #{__FILE__}" + include ActiveJob::TestHelper # enqueued_jobs + + let(:access_request) { create(:access_request) } + + describe 'approve' do + before :each do + access_request.approve + end + + it { expect(access_request.approved).to be true } + it { expect(access_request.answered).to be true } + it { expect(UserMap.count).to eq 1 } + it { expect(enqueued_jobs.count).to eq 1 } + end + + describe 'deny' do + before :each do + access_request.deny + end + + it { expect(access_request.approved).to be false } + it { expect(access_request.answered).to be true } + it { expect(UserMap.count).to eq 0 } + it { expect(enqueued_jobs.count).to eq 0 } + end end