require "rails_helper"

module Clubhouse
  describe Mailer do
    let!(:organization) { create(:clubhouse_organization, name: "org-name") }

    describe ".invitation" do
      let!(:invitation) { create(:clubhouse_invitation, email: "john@example.com", organization: organization) }
      let(:mail) { Mailer.invitation(invitation) }

      it "sends email" do
        mail.deliver_now

        expect(last_email).to be_present
      end

      it "sets fields correctly" do
        email = mail.deliver_now

        expect(email[:from].decoded).to eq("from@example.com")
        expect(email[:to].decoded).to eq("john@example.com")
        expect(email.subject).to eq("You've been invited to join org-name")
      end

      it "renders body correctly" do
        body = mail.deliver_now.body.to_s

        expect(body).to include("accept your invitation")
        expect(body).to include("/organizations/org-name/invitations/#{invitation.token}?email=john@example.com")
        expect(body).to include("ignore this email")
      end

      it "renders layout correctly" do
        body = mail.deliver_now.body.to_s

        expect(body).to include("Hi there")
        expect(body).to include("Clubhouse Team")
      end
    end
  end
end