Skip to content

Commit cd93f67

Browse files
committed
✅ test: feed 도메인 테스트 코드 최종 리팩토링
1 parent e2135b9 commit cd93f67

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

server/test/feed/e2e/delete.e2e-spec.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ describe(`DELETE ${URL}/{feedId} E2E Test`, () => {
2626
rssAccept = await rssAcceptRepository.save(
2727
RssAcceptFixture.createRssAcceptFixture(),
2828
);
29+
feed = await feedRepository.save(FeedFixture.createFeedFixture(rssAccept));
2930
});
3031

3132
it('[404] 존재하지 않는 게시글 ID에 요청을 보낼 경우 404를 응답한다.', async () => {
@@ -36,11 +37,18 @@ describe(`DELETE ${URL}/{feedId} E2E Test`, () => {
3637
const { data } = response.body;
3738
expect(response.status).toBe(HttpStatus.NOT_FOUND);
3839
expect(data).toBeUndefined();
40+
41+
// DB, Redis when
42+
const savedFeed = await feedRepository.findOneBy({
43+
id: feed.id,
44+
});
45+
46+
// DB, Redis then
47+
expect(savedFeed).not.toBeNull();
3948
});
4049

4150
it('[404] 원본 게시글이 존재하지 않을 경우 서비스에서 게시글 정보를 삭제하여 조회를 실패한다.', async () => {
4251
// given
43-
feed = await feedRepository.save(FeedFixture.createFeedFixture(rssAccept));
4452
global.fetch = jest
4553
.fn()
4654
.mockResolvedValue({ ok: false, status: HttpStatus.NOT_FOUND });
@@ -52,6 +60,14 @@ describe(`DELETE ${URL}/{feedId} E2E Test`, () => {
5260
const { data } = response.body;
5361
expect(response.status).toBe(HttpStatus.NOT_FOUND);
5462
expect(data).toBeUndefined();
63+
64+
// DB, Redis when
65+
const savedFeed = await feedRepository.findOneBy({
66+
id: feed.id,
67+
});
68+
69+
// DB, Redis then
70+
expect(savedFeed).toBeNull();
5571
});
5672

5773
it('[200] 원본 게시글이 존재할 경우 조회를 성공한다.', async () => {

server/test/feed/e2e/recent.e2e-spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ describe(`GET ${URL} E2E Test`, () => {
1616
let agent: TestAgent;
1717
let redisService: RedisService;
1818
let feedList: Feed[];
19+
const redisKeyMake = (data: string) =>
20+
`${REDIS_KEYS.FEED_RECENT_KEY}:${data}`;
1921

2022
beforeAll(async () => {
2123
app = global.testApp;
@@ -37,7 +39,7 @@ describe(`GET ${URL} E2E Test`, () => {
3739
// given
3840
await redisService.executePipeline((pipeline) => {
3941
feedList.forEach((feed) => {
40-
pipeline.hset(`${REDIS_KEYS.FEED_RECENT_KEY}:${feed.id}`, {
42+
pipeline.hset(redisKeyMake(feed.id.toString()), {
4143
id: feed.id,
4244
blogPlatform: feed.blog.blogPlatform,
4345
createdAt: feed.createdAt.toISOString(),
@@ -84,7 +86,7 @@ describe(`GET ${URL} E2E Test`, () => {
8486
// cleanup
8587
await redisService.executePipeline((pipeline) => {
8688
feedList.forEach((feed) => {
87-
pipeline.del(`${REDIS_KEYS.FEED_RECENT_KEY}:${feed.id}`);
89+
pipeline.del(redisKeyMake(feed.id.toString()));
8890
});
8991
});
9092
});

server/test/feed/e2e/up-view-count.e2e-spec.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
1818
let feed: Feed;
1919
let feedRepository: FeedRepository;
2020
const testIp = '1.1.1.1';
21+
const redisKeyMake = (data: string) => `feed:${data}:ip`;
2122

2223
beforeAll(async () => {
2324
app = global.testApp;
@@ -31,7 +32,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
3132
feed = await feedRepository.save(
3233
FeedFixture.createFeedFixture(rssAccept, {}, 1),
3334
);
34-
await redisService.sadd(`feed:${feed.id}:ip`, testIp);
35+
await redisService.sadd(redisKeyMake(feed.id.toString()), testIp);
3536
});
3637

3738
it('[404] 피드가 서비스에 존재하지 않을 경우 조회수 상승을 실패한다.', async () => {
@@ -61,7 +62,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
6162
id: feed.id,
6263
});
6364
const savedFeedReadRedis = await redisService.sismember(
64-
`feed:${feed.id}:ip`,
65+
redisKeyMake(feed.id.toString()),
6566
testIp,
6667
);
6768

@@ -72,7 +73,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
7273

7374
it('[200] 읽은 기록 쿠키가 없지만 읽은 기록 IP가 있을 경우 조회수 상승을 하지 않는 행위를 성공한다.', async () => {
7475
// given
75-
await redisService.sadd(`feed:${feed.id}:ip`, testIp);
76+
await redisService.sadd(redisKeyMake(feed.id.toString()), testIp);
7677

7778
// Http when
7879
const response = await agent
@@ -92,7 +93,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
9293
id: feed.id,
9394
});
9495
const savedFeedReadRedis = await redisService.sismember(
95-
`feed:${feed.id}:ip`,
96+
redisKeyMake(feed.id.toString()),
9697
testIp,
9798
);
9899

@@ -103,7 +104,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
103104
// cleanup
104105
await Promise.all([
105106
redisService.zrem(REDIS_KEYS.FEED_TREND_KEY, feed.id.toString()),
106-
redisService.srem(`feed:${feed.id}:ip`, testIp),
107+
redisService.srem(redisKeyMake(feed.id.toString()), testIp),
107108
]);
108109
});
109110

@@ -129,7 +130,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
129130
id: feed.id,
130131
});
131132
const savedFeedReadRedis = await redisService.sismember(
132-
`feed:${feed.id}:ip`,
133+
redisKeyMake(feed.id.toString()),
133134
testIp,
134135
);
135136

@@ -140,7 +141,7 @@ describe(`POST ${URL}/{feedId} E2E Test`, () => {
140141
// cleanup
141142
await Promise.all([
142143
redisService.zrem(REDIS_KEYS.FEED_TREND_KEY, feed.id.toString()),
143-
redisService.srem(`feed:${feed.id}:ip`, testNewIp),
144+
redisService.srem(redisKeyMake(feed.id.toString()), testNewIp),
144145
]);
145146
await feedRepository.update(feed.id, { viewCount: feed.viewCount });
146147
});

0 commit comments

Comments
 (0)