@@ -5,16 +5,31 @@ import {
55} from '../../../src/rss/repository/rss.repository' ;
66import { RssFixture } from '../../fixture/rss.fixture' ;
77import * as request from 'supertest' ;
8+ import { RedisService } from '../../../src/common/redis/redis.service' ;
9+ import { FeedRepository } from '../../../src/feed/repository/feed.repository' ;
10+ import { FeedFixture } from '../../fixture/feed.fixture' ;
11+ import { CommentRepository } from '../../../src/comment/repository/comment.repository' ;
12+ import { CommentFixture } from '../../fixture/comment.fixture' ;
13+ import { UserRepository } from '../../../src/user/repository/user.repository' ;
14+ import { UserFixture } from '../../fixture/user.fixture' ;
815
916describe ( '/api/rss/remove E2E Test' , ( ) => {
1017 let app : INestApplication ;
1118 let rssRepository : RssRepository ;
19+ let feedRepository : FeedRepository ;
1220 let rssAcceptRepository : RssAcceptRepository ;
21+ let redisService : RedisService ;
22+ let commentRepository : CommentRepository ;
23+ let userRepository : UserRepository ;
1324
1425 beforeAll ( ( ) => {
1526 app = global . testApp ;
1627 rssRepository = app . get ( RssRepository ) ;
1728 rssAcceptRepository = app . get ( RssAcceptRepository ) ;
29+ redisService = app . get ( RedisService ) ;
30+ feedRepository = app . get ( FeedRepository ) ;
31+ commentRepository = app . get ( CommentRepository ) ;
32+ userRepository = app . get ( UserRepository ) ;
1833 } ) ;
1934
2035 describe ( 'POST /api/rss/remove E2E Test' , ( ) => {
@@ -66,4 +81,53 @@ describe('/api/rss/remove E2E Test', () => {
6681 expect ( response . status ) . toBe ( 200 ) ;
6782 } ) ;
6883 } ) ;
84+
85+ describe ( 'DELETE /api/rss/remove/:code' , ( ) => {
86+ it ( '[404] 삭제 신청된 RSS가 없으면 인증할 수 없다.' , async ( ) => {
87+ // when
88+ const response = await request ( app . getHttpServer ( ) )
89+ . delete ( `/api/rss/remove/testfail` )
90+ . send ( ) ;
91+
92+ // then
93+ expect ( response . status ) . toBe ( 404 ) ;
94+ } ) ;
95+
96+ it ( '[404] 이미 지워진 RSS라면 지울 수 없다.' , async ( ) => {
97+ // given
98+ await redisService . set ( 'rss:remove:rssNotFound' , 'test' ) ;
99+
100+ // when
101+ const response = await request ( app . getHttpServer ( ) )
102+ . delete ( `/api/rss/remove/rssNotFound` )
103+ . send ( ) ;
104+
105+ // then
106+ expect ( response . status ) . toBe ( 404 ) ;
107+ } ) ;
108+
109+ it ( '[200] 삭제 신청된 RSS가 있을 경우 좋아요, 댓글, 게시글, RSS가 한 번에 삭제된다.' , async ( ) => {
110+ // given
111+ const certificateCode = 'test' ;
112+ const rss = await rssAcceptRepository . save ( RssFixture . createRssFixture ( ) ) ;
113+ const feed = await feedRepository . save (
114+ FeedFixture . createFeedFixture ( rss ) ,
115+ ) ;
116+ const user = await userRepository . save (
117+ await UserFixture . createUserCryptFixture ( ) ,
118+ ) ;
119+ await commentRepository . save (
120+ CommentFixture . createCommentFixture ( feed , user ) ,
121+ ) ;
122+ await redisService . set ( `rss:remove:${ certificateCode } ` , rss . rssUrl ) ;
123+
124+ // when
125+ const response = await request ( app . getHttpServer ( ) )
126+ . delete ( `/api/rss/remove/${ certificateCode } ` )
127+ . send ( ) ;
128+
129+ // then
130+ expect ( response . status ) . toBe ( 200 ) ;
131+ } ) ;
132+ } ) ;
69133} ) ;
0 commit comments