add test for password recovery

This commit is contained in:
Athou
2023-12-21 22:15:39 +01:00
parent 5541cc9fbe
commit 3714bfaccc
4 changed files with 53 additions and 1 deletions

View File

@@ -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 <noreply@commafeed.com>", message.getFrom()[0].toString());
Assertions.assertEquals("admin@commafeed.com", message.getAllRecipients()[0].toString());
}
}
}