1+ package access .api ;
2+
3+ import access .AbstractMailTest ;
4+ import access .AccessCookieFilter ;
5+ import access .model .Authority ;
6+ import access .model .JoinRequest ;
7+ import access .model .Language ;
8+ import access .model .Organization ;
9+ import access .model .OrganizationMembership ;
10+ import access .model .User ;
11+ import access .request .JoinRequestApproval ;
12+ import access .request .JoinRequestForm ;
13+ import com .fasterxml .jackson .core .JsonProcessingException ;
14+ import io .restassured .common .mapper .TypeRef ;
15+ import io .restassured .http .ContentType ;
16+ import org .junit .jupiter .api .Test ;
17+ import org .springframework .http .HttpStatus ;
18+
19+ import java .util .Map ;
20+ import java .util .Optional ;
21+
22+ import static io .restassured .RestAssured .given ;
23+ import static org .junit .jupiter .api .Assertions .*;
24+
25+ class UserControllerFeedbackTest extends AbstractMailTest {
26+
27+ @ Test
28+ void feedback () throws JsonProcessingException {
29+ AccessCookieFilter accessCookieFilter = mockLoginFlow (GUEST_SUB );
30+ Map <String , String > body = Map .of ("message" , "improve" );
31+ given ()
32+ .when ()
33+ .filter (accessCookieFilter .cookieFilter ())
34+ .header (csrfHeader (accessCookieFilter ))
35+ .accept (ContentType .JSON )
36+ .contentType (ContentType .JSON )
37+ .body (objectMapper .writeValueAsString (body ))
38+ .post ("/api/v1/users/feedback" )
39+ .then ()
40+ .statusCode (HttpStatus .OK .value ());
41+
42+ String htmlContent = super .mailMessage ().getHtmlContent ();
43+ assertTrue (htmlContent .contains (body .get ("message" )));
44+ }
45+
46+ @ Test
47+ void noFeedback () throws JsonProcessingException {
48+ AccessCookieFilter accessCookieFilter = mockLoginFlow (GUEST_SUB );
49+ Map <String , String > body = Map .of ("message" , "" );
50+ given ()
51+ .when ()
52+ .filter (accessCookieFilter .cookieFilter ())
53+ .header (csrfHeader (accessCookieFilter ))
54+ .accept (ContentType .JSON )
55+ .contentType (ContentType .JSON )
56+ .body (objectMapper .writeValueAsString (body ))
57+ .post ("/api/v1/users/feedback" )
58+ .then ()
59+ .statusCode (HttpStatus .OK .value ());
60+
61+ super .confirmNoMailMessages ();
62+ }
63+ }
0 commit comments