From c8bcbdf7deed17909e6da2f1980acd535ee17034 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:09:24 +0900 Subject: [PATCH 01/12] =?UTF-8?q?chore:=20ci=20=EC=8A=A4=ED=81=AC=EB=A6=BD?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..82252bb1d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +name: CI with Gradle + +on: + pull_request: + branches: [ "develop", "release", "master" ] + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + checks: write + + steps: + - name: Checkout the code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Make Gradle wrapper executable + run: chmod +x ./gradlew + + - name: Build with Gradle Wrapper + run: ./gradlew build + + - name: Publish test results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() + with: + files: "**/build/test-results/**/*.xml" From b2f9214b9cf1576ec4614688231ea5143c87194e Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:10:36 +0900 Subject: [PATCH 02/12] =?UTF-8?q?chore:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=9A=A9=20application.yml=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/resources/application.yml | 72 ++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/test/resources/application.yml diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml new file mode 100644 index 000000000..6b66ea613 --- /dev/null +++ b/src/test/resources/application.yml @@ -0,0 +1,72 @@ +spring: + +# db + data: + redis: + host: localhost + port: 6379 + jpa: + hibernate: + ddl-auto: create-drop + generate-ddl: true + show-sql: true + database: mysql + properties: + hibernate: + format_sql: true + flyway: + enabled: false + +# cloud +cloud: + aws: + credentials: + access-key: access-key + secret-key: access-key + region: + static: ap-northeast-2 + stack: + auto: false + s3: + bucket: solid-connection-uploaded + url: + default: default-url + uploaded: uploaded-url + cloudFront: + url: + default: default-url + uploaded: uploaded-url + +# variable +view: + count: + scheduling: + delay: 3000 +oauth: + apple: + token-url: "https://appleid.apple.com/auth/token" + client-secret-audience-url: "https://appleid.apple.com" + public-key-url: "https://appleid.apple.com/auth/keys" + client-id: client-id + team-id: team-id + key-id: key-id + redirect-url: "https://localhost:8080/auth/apple" + kakao: + redirect-url: "http://localhost:8080/auth/kakao" + client-id: client-id + token-url: "https://kauth.kakao.com/oauth/token" + user-info_url: "https://kapi.kakao.com/v2/user/me" +sentry: + environment: test + dsn: "https://test-public-key@sentry.test-domain.io/123456" + send-default-pii: true + traces-sample-rate: 1.0 + exception-resolver-order: -2147483647 +university: + term: 2024-1 +jwt: + secret: + 1234567-1234-1234-1234-12345678901 +cors: + allowed-origins: + - "http://localhost:8080" From 1f3b450873e07e853e587a402a9b24740a3d3f1d Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:11:25 +0900 Subject: [PATCH 03/12] =?UTF-8?q?test:=20test=20profile=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solidconnection/database/DatabaseConnectionTest.java | 2 -- .../example/solidconnection/database/RedisConnectionTest.java | 2 -- .../com/example/solidconnection/support/DatabaseCleaner.java | 2 -- .../solidconnection/support/TestContainerDataJpaTest.java | 2 -- .../solidconnection/support/TestContainerSpringBootTest.java | 2 -- 5 files changed, 10 deletions(-) diff --git a/src/test/java/com/example/solidconnection/database/DatabaseConnectionTest.java b/src/test/java/com/example/solidconnection/database/DatabaseConnectionTest.java index d156cf485..ca3c64c7a 100644 --- a/src/test/java/com/example/solidconnection/database/DatabaseConnectionTest.java +++ b/src/test/java/com/example/solidconnection/database/DatabaseConnectionTest.java @@ -8,7 +8,6 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.test.context.ActiveProfiles; import java.sql.DatabaseMetaData; import java.sql.SQLException; @@ -20,7 +19,6 @@ @Disabled @AutoConfigureTestDatabase(connection = EmbeddedDatabaseConnection.H2, replace = AutoConfigureTestDatabase.Replace.ANY) -@ActiveProfiles("test") @DataJpaTest class DatabaseConnectionTest { diff --git a/src/test/java/com/example/solidconnection/database/RedisConnectionTest.java b/src/test/java/com/example/solidconnection/database/RedisConnectionTest.java index 69fcedaef..527ae7e07 100644 --- a/src/test/java/com/example/solidconnection/database/RedisConnectionTest.java +++ b/src/test/java/com/example/solidconnection/database/RedisConnectionTest.java @@ -6,12 +6,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.test.context.ActiveProfiles; import static org.assertj.core.api.Assertions.assertThat; @Disabled -@ActiveProfiles("test") @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) class RedisConnectionTest { diff --git a/src/test/java/com/example/solidconnection/support/DatabaseCleaner.java b/src/test/java/com/example/solidconnection/support/DatabaseCleaner.java index bb77f82f2..aee6a2bc6 100644 --- a/src/test/java/com/example/solidconnection/support/DatabaseCleaner.java +++ b/src/test/java/com/example/solidconnection/support/DatabaseCleaner.java @@ -5,13 +5,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; -import org.springframework.test.context.ActiveProfiles; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Objects; -@ActiveProfiles("test") @Component public class DatabaseCleaner { diff --git a/src/test/java/com/example/solidconnection/support/TestContainerDataJpaTest.java b/src/test/java/com/example/solidconnection/support/TestContainerDataJpaTest.java index 339672e60..2f09151d6 100644 --- a/src/test/java/com/example/solidconnection/support/TestContainerDataJpaTest.java +++ b/src/test/java/com/example/solidconnection/support/TestContainerDataJpaTest.java @@ -3,7 +3,6 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; import org.testcontainers.junit.jupiter.Testcontainers; import java.lang.annotation.ElementType; @@ -13,7 +12,6 @@ @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -@ActiveProfiles("test") @Testcontainers @Import(MySQLTestContainer.class) @Target(ElementType.TYPE) diff --git a/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java b/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java index fe9b74f60..50ab2e5ff 100644 --- a/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java +++ b/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java @@ -4,7 +4,6 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Import; -import org.springframework.test.context.ActiveProfiles; import org.testcontainers.junit.jupiter.Testcontainers; import java.lang.annotation.ElementType; @@ -15,7 +14,6 @@ @ExtendWith({DatabaseClearExtension.class}) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -@ActiveProfiles("test") @Testcontainers @Import({MySQLTestContainer.class, RedisTestContainer.class}) @Target(ElementType.TYPE) From a10a9a654923dd8cd111a87fb9aa7f753ec9bba8 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:31:54 +0900 Subject: [PATCH 04/12] =?UTF-8?q?refactor:=20=EC=95=A0=ED=94=8C=20?= =?UTF-8?q?=EC=8B=9C=ED=81=AC=EB=A6=BF=ED=82=A4=EB=A5=BC=20yml=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/AppleOAuthClientSecretProvider.java | 16 +++++----------- .../client/AppleOAuthClientProperties.java | 3 ++- src/test/resources/application.yml | 3 ++- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java b/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java index 2de0b7291..3ba2bbcb0 100644 --- a/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java +++ b/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java @@ -9,15 +9,12 @@ import org.apache.tomcat.util.codec.binary.Base64; import org.springframework.stereotype.Component; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; +import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.util.Date; -import java.util.stream.Collectors; import static com.example.solidconnection.custom.exception.ErrorCode.FAILED_TO_READ_APPLE_PRIVATE_KEY; @@ -32,7 +29,6 @@ public class AppleOAuthClientSecretProvider { private static final String KEY_ID_HEADER = "kid"; private static final long TOKEN_DURATION = 1000 * 60 * 10; // 10min - private static final String SECRET_KEY_PATH = "secret/AppleOAuthKey.p8"; private final AppleOAuthClientProperties appleOAuthClientProperties; private PrivateKey privateKey; @@ -58,15 +54,13 @@ public String generateClientSecret() { } private PrivateKey readPrivateKey() { - try (InputStream is = getClass().getClassLoader().getResourceAsStream(SECRET_KEY_PATH); - BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) { - - String secretKey = reader.lines().collect(Collectors.joining("\n")); + try { + String secretKey = appleOAuthClientProperties.secretKey(); byte[] encoded = Base64.decodeBase64(secretKey); PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded); KeyFactory keyFactory = KeyFactory.getInstance("EC"); return keyFactory.generatePrivate(keySpec); - } catch (Exception e) { + } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { throw new CustomException(FAILED_TO_READ_APPLE_PRIVATE_KEY); } } diff --git a/src/main/java/com/example/solidconnection/config/client/AppleOAuthClientProperties.java b/src/main/java/com/example/solidconnection/config/client/AppleOAuthClientProperties.java index 609e9ee89..c04908583 100644 --- a/src/main/java/com/example/solidconnection/config/client/AppleOAuthClientProperties.java +++ b/src/main/java/com/example/solidconnection/config/client/AppleOAuthClientProperties.java @@ -10,6 +10,7 @@ public record AppleOAuthClientProperties( String publicKeyUrl, String clientId, String teamId, - String keyId + String keyId, + String secretKey ) { } diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 6b66ea613..bbebc8002 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -51,7 +51,8 @@ oauth: team-id: team-id key-id: key-id redirect-url: "https://localhost:8080/auth/apple" - kakao: + secret-key: MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCAfGIQ3TtNYAZG7i3m72odmdhfymkM9wAFg2rEL2RKUEA== +kakao: redirect-url: "http://localhost:8080/auth/kakao" client-id: client-id token-url: "https://kauth.kakao.com/oauth/token" From b89e0ffbf812219267b16b97917ee0fe98776a84 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:32:52 +0900 Subject: [PATCH 05/12] =?UTF-8?q?refactor:=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/client/AppleOAuthClientSecretProvider.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java b/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java index 3ba2bbcb0..a6b91f0eb 100644 --- a/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java +++ b/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java @@ -35,7 +35,7 @@ public class AppleOAuthClientSecretProvider { @PostConstruct private void initPrivateKey() { - privateKey = readPrivateKey(); + privateKey = generatePrivateKey(); } public String generateClientSecret() { @@ -53,7 +53,7 @@ public String generateClientSecret() { .compact(); } - private PrivateKey readPrivateKey() { + private PrivateKey generatePrivateKey() { try { String secretKey = appleOAuthClientProperties.secretKey(); byte[] encoded = Base64.decodeBase64(secretKey); From 6c97904ae31d0612bdf602449a0fd206a30115a2 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:33:26 +0900 Subject: [PATCH 06/12] =?UTF-8?q?refactor:=20=EC=98=A4=ED=83=80=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/client/AppleOAuthClientSecretProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java b/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java index a6b91f0eb..87b3ad6b1 100644 --- a/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java +++ b/src/main/java/com/example/solidconnection/auth/client/AppleOAuthClientSecretProvider.java @@ -19,7 +19,7 @@ import static com.example.solidconnection.custom.exception.ErrorCode.FAILED_TO_READ_APPLE_PRIVATE_KEY; /* - * 애플 OAuth 에 필요하 클라이언트 시크릿은 매번 동적으로 생성해야 한다. + * 애플 OAuth 에 필요한 클라이언트 시크릿은 매번 동적으로 생성해야 한다. * 클라이언트 시크릿은 애플 개발자 계정에서 발급받은 개인키(*.p8)를 사용하여 JWT 를 생성한다. * https://developer.apple.com/documentation/accountorganizationaldatasharing/creating-a-client-secret * */ From fec5de2aeca213a8fb7d239fc04fde8b2f255faf Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 26 Mar 2025 16:58:02 +0900 Subject: [PATCH 07/12] =?UTF-8?q?refactor:=20redis=20testcontainers=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/RedisTestContainer.java | 33 +++++++++---------- .../support/TestContainerSpringBootTest.java | 4 ++- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/test/java/com/example/solidconnection/support/RedisTestContainer.java b/src/test/java/com/example/solidconnection/support/RedisTestContainer.java index 39f35c2d5..212499361 100644 --- a/src/test/java/com/example/solidconnection/support/RedisTestContainer.java +++ b/src/test/java/com/example/solidconnection/support/RedisTestContainer.java @@ -1,28 +1,25 @@ package com.example.solidconnection.support; -import jakarta.annotation.PostConstruct; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; +import org.springframework.boot.test.util.TestPropertyValues; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Container; -@TestConfiguration -public class RedisTestContainer { +public class RedisTestContainer implements ApplicationContextInitializer { - @Container - private static final GenericContainer CONTAINER = new GenericContainer<>("redis:7.0"); + private static final int ORIGINAL_PORT = 6379; + private static final GenericContainer CONTAINER = new GenericContainer<>("redis:7.0") + .withExposedPorts(ORIGINAL_PORT); - @DynamicPropertySource - static void redisProperties(DynamicPropertyRegistry registry) { - registry.add("spring.redis.host", CONTAINER::getHost); - registry.add("spring.redis.port", CONTAINER::getFirstMappedPort); + static { + CONTAINER.start(); } - @PostConstruct - void startContainer() { - if (!CONTAINER.isRunning()) { - CONTAINER.start(); - } + @Override + public void initialize(ConfigurableApplicationContext applicationContext) { + TestPropertyValues.of( + "spring.data.redis.host=" + CONTAINER.getHost(), + "spring.data.redis.port=" + CONTAINER.getMappedPort(ORIGINAL_PORT) + ).applyTo(applicationContext.getEnvironment()); } } diff --git a/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java b/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java index 50ab2e5ff..8d0d5d99a 100644 --- a/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java +++ b/src/test/java/com/example/solidconnection/support/TestContainerSpringBootTest.java @@ -4,6 +4,7 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Import; +import org.springframework.test.context.ContextConfiguration; import org.testcontainers.junit.jupiter.Testcontainers; import java.lang.annotation.ElementType; @@ -12,10 +13,11 @@ import java.lang.annotation.Target; @ExtendWith({DatabaseClearExtension.class}) +@ContextConfiguration(initializers = RedisTestContainer.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @Testcontainers -@Import({MySQLTestContainer.class, RedisTestContainer.class}) +@Import({MySQLTestContainer.class}) @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface TestContainerSpringBootTest { From 08dc602121aef3c41a5fff0fa3c29423c6c3db35 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 27 Mar 2025 16:06:09 +0900 Subject: [PATCH 08/12] =?UTF-8?q?refactor:=20ddl-auto=20=EC=98=B5=EC=85=98?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index bbebc8002..e8db19044 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -7,7 +7,7 @@ spring: port: 6379 jpa: hibernate: - ddl-auto: create-drop + ddl-auto: create generate-ddl: true show-sql: true database: mysql From aa4c3508c580bea8ea193967d576856e151be048 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 27 Mar 2025 17:08:24 +0900 Subject: [PATCH 09/12] =?UTF-8?q?test:=20=EC=8B=9C=EA=B0=84=20=EB=B9=84?= =?UTF-8?q?=EA=B5=90=EB=A5=BC=20instant=EB=A1=9C=20=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comment/service/CommentServiceTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java b/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java index ee74bb90b..e96df9bc2 100644 --- a/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java +++ b/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java @@ -71,8 +71,10 @@ class 댓글_조회_테스트 { () -> assertThat(response.parentId()).isNull(), () -> assertThat(response.content()).isEqualTo(parentComment.getContent()), () -> assertThat(response.isOwner()).isTrue(), - () -> assertThat(response.createdAt()).isEqualTo(parentComment.getCreatedAt()), - () -> assertThat(response.updatedAt()).isEqualTo(parentComment.getUpdatedAt()), + () -> assertThat(response.createdAt().toInstant()) + .isEqualTo(parentComment.getCreatedAt().toInstant()), + () -> assertThat(response.updatedAt().toInstant()) + .isEqualTo(parentComment.getUpdatedAt().toInstant()), () -> assertThat(response.postFindSiteUserResponse().id()) .isEqualTo(parentComment.getSiteUser().getId()), @@ -89,8 +91,10 @@ class 댓글_조회_테스트 { () -> assertThat(response.parentId()).isEqualTo(parentComment.getId()), () -> assertThat(response.content()).isEqualTo(childComment.getContent()), () -> assertThat(response.isOwner()).isFalse(), - () -> assertThat(response.createdAt()).isEqualTo(childComment.getCreatedAt()), - () -> assertThat(response.updatedAt()).isEqualTo(childComment.getUpdatedAt()), + () -> assertThat(response.createdAt().toInstant()) + .isEqualTo(childComment.getCreatedAt().toInstant()), + () -> assertThat(response.updatedAt().toInstant()) + .isEqualTo(childComment.getUpdatedAt().toInstant()), () -> assertThat(response.postFindSiteUserResponse().id()) .isEqualTo(childComment.getSiteUser().getId()), From 9d7bb468fe8fb312423a5873132c02634f9843e0 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Fri, 28 Mar 2025 11:53:24 +0900 Subject: [PATCH 10/12] =?UTF-8?q?test:=20=EC=8B=9C=EA=B0=84=20=EB=B9=84?= =?UTF-8?q?=EA=B5=90=EB=A5=BC=20LocalDateTime=20=EB=A1=9C=20=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comment/service/CommentServiceTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java b/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java index e96df9bc2..c4ed44895 100644 --- a/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java +++ b/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java @@ -71,10 +71,10 @@ class 댓글_조회_테스트 { () -> assertThat(response.parentId()).isNull(), () -> assertThat(response.content()).isEqualTo(parentComment.getContent()), () -> assertThat(response.isOwner()).isTrue(), - () -> assertThat(response.createdAt().toInstant()) - .isEqualTo(parentComment.getCreatedAt().toInstant()), - () -> assertThat(response.updatedAt().toInstant()) - .isEqualTo(parentComment.getUpdatedAt().toInstant()), + () -> assertThat(response.createdAt().toLocalDateTime()) + .isEqualTo(parentComment.getCreatedAt().toLocalDateTime()), + () -> assertThat(response.updatedAt().toLocalDateTime()) + .isEqualTo(parentComment.getUpdatedAt().toLocalDateTime()), () -> assertThat(response.postFindSiteUserResponse().id()) .isEqualTo(parentComment.getSiteUser().getId()), @@ -91,10 +91,10 @@ class 댓글_조회_테스트 { () -> assertThat(response.parentId()).isEqualTo(parentComment.getId()), () -> assertThat(response.content()).isEqualTo(childComment.getContent()), () -> assertThat(response.isOwner()).isFalse(), - () -> assertThat(response.createdAt().toInstant()) - .isEqualTo(childComment.getCreatedAt().toInstant()), - () -> assertThat(response.updatedAt().toInstant()) - .isEqualTo(childComment.getUpdatedAt().toInstant()), + () -> assertThat(response.createdAt().toLocalDateTime()) + .isEqualTo(childComment.getCreatedAt().toLocalDateTime()), + () -> assertThat(response.updatedAt().toLocalDateTime()) + .isEqualTo(childComment.getUpdatedAt().toLocalDateTime()), () -> assertThat(response.postFindSiteUserResponse().id()) .isEqualTo(childComment.getSiteUser().getId()), From cfcaa61d42cc026b08c20b7ac31881ccc666a879 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Fri, 28 Mar 2025 12:56:31 +0900 Subject: [PATCH 11/12] =?UTF-8?q?test:=20=EC=8B=9C=EA=B0=84=20=EB=B9=84?= =?UTF-8?q?=EA=B5=90=EC=97=90=EC=84=9C=20nano=EB=8A=94=20=EB=B9=84?= =?UTF-8?q?=EA=B5=90=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../comment/service/CommentServiceTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java b/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java index c4ed44895..51abe506e 100644 --- a/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java +++ b/src/test/java/com/example/solidconnection/community/comment/service/CommentServiceTest.java @@ -71,10 +71,10 @@ class 댓글_조회_테스트 { () -> assertThat(response.parentId()).isNull(), () -> assertThat(response.content()).isEqualTo(parentComment.getContent()), () -> assertThat(response.isOwner()).isTrue(), - () -> assertThat(response.createdAt().toLocalDateTime()) - .isEqualTo(parentComment.getCreatedAt().toLocalDateTime()), - () -> assertThat(response.updatedAt().toLocalDateTime()) - .isEqualTo(parentComment.getUpdatedAt().toLocalDateTime()), + () -> assertThat(response.createdAt().withNano(0)) + .isEqualTo(parentComment.getCreatedAt().withNano(0)), + () -> assertThat(response.updatedAt().withNano(0)) + .isEqualTo(parentComment.getUpdatedAt().withNano(0)), () -> assertThat(response.postFindSiteUserResponse().id()) .isEqualTo(parentComment.getSiteUser().getId()), @@ -91,10 +91,10 @@ class 댓글_조회_테스트 { () -> assertThat(response.parentId()).isEqualTo(parentComment.getId()), () -> assertThat(response.content()).isEqualTo(childComment.getContent()), () -> assertThat(response.isOwner()).isFalse(), - () -> assertThat(response.createdAt().toLocalDateTime()) - .isEqualTo(childComment.getCreatedAt().toLocalDateTime()), - () -> assertThat(response.updatedAt().toLocalDateTime()) - .isEqualTo(childComment.getUpdatedAt().toLocalDateTime()), + () -> assertThat(response.createdAt().withNano(0)) + .isEqualTo(childComment.getCreatedAt().withNano(0)), + () -> assertThat(response.updatedAt().withNano(0)) + .isEqualTo(childComment.getUpdatedAt().withNano(0)), () -> assertThat(response.postFindSiteUserResponse().id()) .isEqualTo(childComment.getSiteUser().getId()), From b286220b1de4027c935d014bd62869a7bac45aa5 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Fri, 28 Mar 2025 13:07:50 +0900 Subject: [PATCH 12/12] =?UTF-8?q?chore:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EA=B2=B0=EA=B3=BC=20=EC=9E=91=EC=84=B1=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=B6=80=EB=B6=84=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82252bb1d..66a0cbfc5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,9 +29,3 @@ jobs: - name: Build with Gradle Wrapper run: ./gradlew build - - - name: Publish test results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - files: "**/build/test-results/**/*.xml"