few small fixes

This commit is contained in:
2025-06-13 17:51:35 +02:00
parent d9a8ffe4bd
commit 86e902bbfe
4 changed files with 11 additions and 92 deletions

View File

@@ -1,41 +1,33 @@
spring.application.name=ArtisanConnectBackend spring.application.name=ArtisanConnectBackend
## PostgreSQL
spring.datasource.url=${DB_URL:jdbc:postgresql://db:5432/postgres} spring.datasource.url=${DB_URL:jdbc:postgresql://db:5432/postgres}
spring.datasource.username=${DB_USER:postgres} spring.datasource.username=${DB_USER:postgres}
spring.datasource.password=${DB_PASS:postgres} spring.datasource.password=${DB_PASS:postgres}
spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.driver-class-name=org.postgresql.Driver
#Injekcja danych przyk?adowych przy starcie bazy
spring.sql.init.data-locations=classpath:sql/data.sql spring.sql.init.data-locations=classpath:sql/data.sql
spring.sql.init.mode=always spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true spring.jpa.defer-datasource-initialization=true
#Sposób zachowania JPA spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.ddl-auto=create-drop
#Gdzie uploadujemy zdj?cia i maksymalny rozmiar
file.upload-dir=${IMAGES_UPLOAD_DIR:/app/images} file.upload-dir=${IMAGES_UPLOAD_DIR:/app/images}
spring.servlet.multipart.max-file-size=${MAX_FILE_SIZE:10MB} spring.servlet.multipart.max-file-size=${MAX_FILE_SIZE:10MB}
spring.servlet.multipart.max-request-size=${MAX_REQUEST_SIZE:10MB} spring.servlet.multipart.max-request-size=${MAX_REQUEST_SIZE:10MB}
#Ustawienia wysy?ania maili
spring.mail.host=${MAIL_HOST} spring.mail.host=${MAIL_HOST}
spring.mail.port=${MAIL_PORT} spring.mail.port=${MAIL_PORT}
spring.mail.username=${MAIL_USER} spring.mail.username=${MAIL_USER}
spring.mail.password=${MAIL_PASSWORD} spring.mail.password=${MAIL_PASSWORD}
#Ustawienia TPay
tpay.clientId=${TPAY_CLIENT_ID} tpay.clientId=${TPAY_CLIENT_ID}
tpay.clientSecret=${TPAY_SECRET} tpay.clientSecret=${TPAY_SECRET}
tpay.authUrl=${TPAY_AUTH_URL} tpay.authUrl=${TPAY_AUTH_URL}
tpay.transactionUrl=${TPAY_TRANSACTION_URL} tpay.transactionUrl=${TPAY_TRANSACTION_URL}
tpay.securityCode = ${TPAY_SECURITY_CODE} tpay.securityCode = ${TPAY_SECURITY_CODE}
#Ustawienia JWT
jwt.secret=${JWT_SECRET} jwt.secret=${JWT_SECRET}
jwt.expiration=1200000 jwt.expiration=1200000
#Ustawienia logowania
logging.file.name=logs/payment-notifications.log logging.file.name=logs/payment-notifications.log
logging.level.TpayLogger=INFO logging.level.TpayLogger=INFO

View File

@@ -5,11 +5,11 @@ VALUES
INSERT INTO clients (email, first_name, last_name, password, role_id) INSERT INTO clients (email, first_name, last_name, password, role_id)
VALUES VALUES
('dignissim.tempor.arcu@aol.ca', 'Diana', 'Harrison', 'password', 1), ('dignissim.tempor.arcu@aol.ca', 'Diana', 'Harrison', '', 1),
('john.doe@example.com', 'John', 'Doe', 'password123', 2), ('john.doe@example.com', 'John', 'Doe', '', 2),
('jane.smith@example.com', 'Jane', 'Smith', 'securepass', 1), ('jane.smith@example.com', 'Jane', 'Smith', '', 1),
('michael.brown@example.com', 'Michael', 'Brown', 'mypassword', 1), ('michael.brown@example.com', 'Michael', 'Brown', '', 1),
('emily.jones@example.com', 'Emily', 'Jones', 'passw0rd', 1); ('emily.jones@example.com', 'Emily', 'Jones', '', 1);
INSERT INTO notice (title, description, client_id, price, category, status, publish_date) VALUES INSERT INTO notice (title, description, client_id, price, category, status, publish_date) VALUES

View File

@@ -1,76 +0,0 @@
package _11.asktpk.artisanconnectbackend;
import _11.asktpk.artisanconnectbackend.security.JwtUtil;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
@SpringBootTest
@AutoConfigureMockMvc
class EmailControllerIntegrationTest {
@Autowired
private MockMvc mockMvc;
@Autowired
private JwtUtil jwtUtil;
@Test
@DisplayName("Wysyłanie Maila z waznym tokenem")
void testSendEmailWithValidAuthToken() throws Exception {
System.out.println("Startowanie testSendEmailWithValidAuthToken");
String jsonPayload = """
{
"to": "test@example.com",
"subject": "Test Subject",
"body": "Test Body"
}
""";
System.out.println("Wysyłanie JSON payload: " + jsonPayload);
String jwtToken = "Bearer " + jwtUtil.generateToken("test@example.com", "USER", 1L);
MvcResult result = mockMvc.perform(post("/api/v1/email/send")
.header("Authorization", jwtToken)
.contentType(MediaType.APPLICATION_JSON)
.content(jsonPayload))
.andExpect(status().isOk())
.andExpect(content().string("Email wysłany pomyślnie"))
.andReturn();
System.out.println("Status odpowiedzi: " + result.getResponse().getStatus());
System.out.println("Treść odpowiedzi: " + result.getResponse().getContentAsString());
}
@Test
@DisplayName("Wysyłanie Maila bez tokena")
void testSendEmailWithoutAuthToken() throws Exception {
System.out.println("Startowanie testSendEmailWithoutAuthToken");
String jsonPayload = """
{
"to": "test@example.com",
"subject": "Test Subject",
"body": "Test Body"
}
""";
System.out.println("Wysyłanie JSON payload: " + jsonPayload);
MvcResult result = mockMvc.perform(post("/api/v1/email/send")
.contentType(MediaType.APPLICATION_JSON)
.content(jsonPayload))
.andExpect(status().isForbidden())
.andReturn();
System.out.println("Status odpowiedzi: " + result.getResponse().getStatus());
System.out.println("Treść odpowiedzi: " + result.getResponse().getContentAsString());
}
}

View File

@@ -39,6 +39,9 @@ class NoticeServiceTest {
@Mock @Mock
private AttributeValuesRepository attributeValuesRepository; private AttributeValuesRepository attributeValuesRepository;
@Mock
private AttributesNoticeRepository attributesNoticeRepository;
@InjectMocks @InjectMocks
private NoticeService noticeService; private NoticeService noticeService;
@@ -121,8 +124,8 @@ class NoticeServiceTest {
@DisplayName("Dodanie ogłoszenia z atrybutami") @DisplayName("Dodanie ogłoszenia z atrybutami")
void addNotice_WithAttributes_ShouldSaveAttributes() { void addNotice_WithAttributes_ShouldSaveAttributes() {
AttributeDto attributeDto = new AttributeDto(); AttributeDto attributeDto = new AttributeDto();
attributeDto.setName("Materiał"); attributeDto.setName("Kolor");
attributeDto.setValue("Drewno"); attributeDto.setValue("Zielony");
sampleNoticeRequest.setAttributes(List.of(attributeDto)); sampleNoticeRequest.setAttributes(List.of(attributeDto));
when(clientRepository.findById(1L)).thenReturn(Optional.of(sampleClient)); when(clientRepository.findById(1L)).thenReturn(Optional.of(sampleClient));