1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-08-04 13:05:21 +02:00

feat(frontend): Fix scheduler, forgot password flow, and minor bug fixes (#725)

* feat(frontend): 💄 add recipe title

* fix(frontend): 🐛 fixes #722 side-bar issue

* feat(frontend):  Add page titles to all pages

* minor cleanup

* refactor(backend): ♻️ rewrite scheduler to be more modulare and work

* feat(frontend):  start password reset functionality

* refactor(backend): ♻️ refactor application settings to facilitate dependency injection

* refactor(backend): 🔥 remove RECIPE_SETTINGS env variables in favor of group settings

* formatting

* refactor(backend): ♻️ align naming convention

* feat(backend):  password reset

* test(backend):  password reset

* feat(frontend):  self-service password reset

* purge password schedule

* update user creation for tests

Co-authored-by: Hayden <hay-kot@pm.me>
This commit is contained in:
Hayden 2021-10-07 09:39:47 -08:00 committed by GitHub
parent d1f0441252
commit 2e9026f9ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
121 changed files with 1461 additions and 679 deletions

View file

@ -0,0 +1,67 @@
import pytest
from mealie.core.config import get_app_settings
from mealie.services.email import EmailService
from mealie.services.email.email_senders import ABCEmailSender
FAKE_ADDRESS = "my_secret_email@email.com"
SUBJECTS = {"Mealie Forgot Password", "Invitation to join Mealie", "Test Email"}
class TestEmailSender(ABCEmailSender):
def send(self, email_to: str, subject: str, html: str) -> bool:
# check email_to:
assert email_to == FAKE_ADDRESS
# check subject:
assert subject in SUBJECTS
# check html is rendered:
assert "{{" not in html
assert "}}" not in html
return True
def patch_env(monkeypatch):
monkeypatch.setenv("SMTP_HOST", "email.mealie.io")
monkeypatch.setenv("SMTP_PORT", "587")
monkeypatch.setenv("SMTP_TLS", "True")
monkeypatch.setenv("SMTP_FROM_NAME", "Mealie")
monkeypatch.setenv("SMTP_FROM_EMAIL", "mealie@mealie.io")
monkeypatch.setenv("SMTP_USER", "mealie@mealie.io")
monkeypatch.setenv("SMTP_PASSWORD", "mealie-password")
@pytest.fixture()
def email_service(monkeypatch) -> EmailService:
patch_env(monkeypatch)
email_service = EmailService(TestEmailSender())
get_app_settings.cache_clear()
email_service.settings = get_app_settings()
return email_service
def test_email_disabled():
email_service = EmailService(TestEmailSender())
get_app_settings.cache_clear()
email_service.settings = get_app_settings()
success = email_service.send_test_email(FAKE_ADDRESS)
assert not success
def test_test_email(email_service):
success = email_service.send_test_email(FAKE_ADDRESS)
assert success
def test_forgot_password_email(email_service):
success = email_service.send_forgot_password(FAKE_ADDRESS, "https://password-url.com")
assert success
def test_invitation_email(email_service):
success = email_service.send_invitation(FAKE_ADDRESS, "https://invitie-url.com")
assert success