Гърмеж на интеграционен тест.
Closed this issue · 1 comments
Alexander-Kostov commented
Привет Лъчо! На финалната права съм, но от вчера ми гърми един интеграционен тест и не мога да го оправя. Очаквам да ме redirect-не, а гърми с client error. Не разбирам защо. Това, което искам да тествам е при неуспешен опит за логване, да има редирект към същата страница с флаш атрибути. Може ли да ми кажеш къде бъркам? Теста се намира в LoginControllerIT, метода е testFailedLogin.
Линк към проекта: https://github.com/Alexander-Kostov/EStore-Project
luchob commented
Здравей!
Ако се загледаш ти дава 403, forbidden. Причината е, че това е POST заявка и като такава трябва да включиш csrf тоукън. Това става много лесно. Ето така:
mockMvc.perform(post("/users/login-error")
.param(UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY, username)
.param(UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY, password)
.with(csrf())) // <-- ТУК
.andExpect(status().is3xxRedirection())
.andExpect(redirectedUrl("/users/login"))
.andExpect(flash().attributeExists(UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY))
.andExpect(flash().attribute("badCredentials", true));
Твоето, но с едно добавено with(csrf())
.Това е, става зелен.
Поздрави,
Л.