61 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # Pleroma: A lightweight social networking server
 | |
| # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 | |
| # SPDX-License-Identifier: AGPL-3.0-only
 | |
| 
 | |
| defmodule Pleroma.User.WelcomeEmailTest do
 | |
|   use Pleroma.DataCase
 | |
| 
 | |
|   alias Pleroma.Config
 | |
|   alias Pleroma.Tests.ObanHelpers
 | |
|   alias Pleroma.User.WelcomeEmail
 | |
| 
 | |
|   import Pleroma.Factory
 | |
|   import Swoosh.TestAssertions
 | |
| 
 | |
|   setup do: clear_config([:welcome])
 | |
| 
 | |
|   describe "send_email/1" do
 | |
|     test "send a welcome email" do
 | |
|       user = insert(:user, name: "Jimm")
 | |
| 
 | |
|       Config.put([:welcome, :email, :enabled], true)
 | |
|       Config.put([:welcome, :email, :sender], "welcome@pleroma.app")
 | |
| 
 | |
|       Config.put(
 | |
|         [:welcome, :email, :subject],
 | |
|         "Hello, welcome to pleroma: <%= instance_name %>"
 | |
|       )
 | |
| 
 | |
|       Config.put(
 | |
|         [:welcome, :email, :html],
 | |
|         "<h1>Hello <%= user.name %>.</h1> <p>Welcome to <%= instance_name %></p>"
 | |
|       )
 | |
| 
 | |
|       instance_name = Config.get([:instance, :name])
 | |
| 
 | |
|       {:ok, _job} = WelcomeEmail.send_email(user)
 | |
| 
 | |
|       ObanHelpers.perform_all()
 | |
| 
 | |
|       assert_email_sent(
 | |
|         from: {instance_name, "welcome@pleroma.app"},
 | |
|         to: {user.name, user.email},
 | |
|         subject: "Hello, welcome to pleroma: #{instance_name}",
 | |
|         html_body: "<h1>Hello #{user.name}.</h1> <p>Welcome to #{instance_name}</p>"
 | |
|       )
 | |
| 
 | |
|       Config.put([:welcome, :email, :sender], {"Pleroma App", "welcome@pleroma.app"})
 | |
| 
 | |
|       {:ok, _job} = WelcomeEmail.send_email(user)
 | |
| 
 | |
|       ObanHelpers.perform_all()
 | |
| 
 | |
|       assert_email_sent(
 | |
|         from: {"Pleroma App", "welcome@pleroma.app"},
 | |
|         to: {user.name, user.email},
 | |
|         subject: "Hello, welcome to pleroma: #{instance_name}",
 | |
|         html_body: "<h1>Hello #{user.name}.</h1> <p>Welcome to #{instance_name}</p>"
 | |
|       )
 | |
|     end
 | |
|   end
 | |
| end
 | 
