diff --git a/commafeed-server/config.dev.yml b/commafeed-server/config.dev.yml
index 76f44e88..e17c7df2 100644
--- a/commafeed-server/config.dev.yml
+++ b/commafeed-server/config.dev.yml
@@ -37,6 +37,7 @@ app:
smtpTls: false
smtpUserName: user
smtpPassword: pass
+ smtpFromAddress:
# Graphite Metric settings
# Allows those who use Graphite to have CommaFeed send metrics for graphing (time in seconds)
diff --git a/commafeed-server/pom.xml b/commafeed-server/pom.xml
index 4e373f92..a20b47e5 100644
--- a/commafeed-server/pom.xml
+++ b/commafeed-server/pom.xml
@@ -452,6 +452,12 @@
5.15.0
test
+
+ com.icegreen
+ greenmail-junit5
+ 2.0.1
+ test
+
org.bouncycastle
diff --git a/commafeed-server/src/test/java/com/commafeed/integration/rest/UserIT.java b/commafeed-server/src/test/java/com/commafeed/integration/rest/UserIT.java
new file mode 100644
index 00000000..3eccde06
--- /dev/null
+++ b/commafeed-server/src/test/java/com/commafeed/integration/rest/UserIT.java
@@ -0,0 +1,44 @@
+package com.commafeed.integration.rest;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import com.commafeed.frontend.model.request.PasswordResetRequest;
+import com.commafeed.integration.BaseIT;
+import com.icegreen.greenmail.junit5.GreenMailExtension;
+import com.icegreen.greenmail.util.ServerSetupTest;
+
+import jakarta.mail.internet.MimeMessage;
+import jakarta.ws.rs.client.Entity;
+
+class UserIT extends BaseIT {
+
+ @Nested
+ class PasswordReset {
+
+ @RegisterExtension
+ static final GreenMailExtension GREEN_MAIL = new GreenMailExtension(ServerSetupTest.SMTP);
+
+ @BeforeEach
+ void init() {
+ GREEN_MAIL.setUser("noreply@commafeed.com", "user", "pass");
+ }
+
+ @Test
+ void resetPassword() throws Exception {
+ PasswordResetRequest req = new PasswordResetRequest();
+ req.setEmail("admin@commafeed.com");
+
+ getClient().target(getApiBaseUrl() + "user/passwordReset").request().post(Entity.json(req), Void.TYPE);
+
+ MimeMessage message = GREEN_MAIL.getReceivedMessages()[0];
+ Assertions.assertEquals("CommaFeed - Password recovery", message.getSubject());
+ Assertions.assertTrue(message.getContent().toString().startsWith("You asked for password recovery for account 'admin'"));
+ Assertions.assertEquals("CommaFeed ", message.getFrom()[0].toString());
+ Assertions.assertEquals("admin@commafeed.com", message.getAllRecipients()[0].toString());
+ }
+ }
+}
diff --git a/commafeed-server/src/test/resources/config.test.yml b/commafeed-server/src/test/resources/config.test.yml
index 2615483f..a61b8c39 100644
--- a/commafeed-server/src/test/resources/config.test.yml
+++ b/commafeed-server/src/test/resources/config.test.yml
@@ -33,10 +33,11 @@ app:
# settings for sending emails (password recovery)
smtpHost: localhost
- smtpPort: 25
+ smtpPort: 3025
smtpTls: false
smtpUserName: user
smtpPassword: pass
+ smtpFromAddress: noreply@commafeed.com
# Graphite Metric settings
# Allows those who use Graphite to have CommaFeed send metrics for graphing (time in seconds)