1+ const userModel = require ( '@apis/user/model' ) ;
12const workspaceModel = require ( './model' ) ;
23const workspaceService = require ( './service' ) ;
34const { default : InvalidJoinError } = require ( '@errors/invalid-join-error' ) ;
@@ -57,18 +58,18 @@ describe('create', () => {
5758
5859describe ( 'join' , ( ) => {
5960 const USER_ID = 1 ;
61+ const WORKSPACE_ID = 1 ;
62+ const WORKSPACE_NAME = 'Wab' ;
6063
6164 it ( '유효한 참여코드가 주어진 경우 성공한다.' , async ( ) => {
62- const WORKSPACE_ID = 1 ;
63- const WORKSPACE_NAME = 'Wab' ;
64-
6565 workspaceModel . findOne . mockResolvedValueOnce ( {
6666 id : WORKSPACE_ID ,
6767 name : WORKSPACE_NAME ,
6868 code : VALID_CODE ,
6969 users : [ ] ,
7070 moms : [ ] ,
7171 } ) ;
72+ userModel . find . mockResolvedValueOnce ( [ { workspaces : [ ] } ] ) ;
7273
7374 expect ( workspaceService . join ( USER_ID , VALID_CODE ) ) . resolves . toEqual ( {
7475 id : WORKSPACE_ID ,
@@ -91,6 +92,21 @@ describe('join', () => {
9192 ) . rejects . toThrow ( InvalidJoinError ) ;
9293 } ) ;
9394
95+ it ( '이미 참여한 워크스페이스인 경우 실패한다.' , async ( ) => {
96+ workspaceModel . findOne . mockResolvedValueOnce ( {
97+ id : WORKSPACE_ID ,
98+ name : WORKSPACE_NAME ,
99+ code : VALID_CODE ,
100+ users : [ ] ,
101+ moms : [ ] ,
102+ } ) ;
103+ userModel . find . mockResolvedValueOnce ( [ { workspaces : [ WORKSPACE_ID ] } ] ) ;
104+
105+ expect ( ( ) => workspaceService . join ( USER_ID , VALID_CODE ) ) . rejects . toThrow (
106+ InvalidJoinError ,
107+ ) ;
108+ } ) ;
109+
94110 it ( 'db 업데이트 중 에러가 발생하면 실패한다.' , async ( ) => {
95111 workspaceModel . updateOne . mockRejectedValueOnce (
96112 new Error ( 'Some error in database operation' ) ,
0 commit comments