@@ -44,15 +44,15 @@ describe('AchievementRepository', () => {
4444
4545 beforeEach ( async ( ) => {
4646 mockDb = {
47- select : vi . fn ( ) . mockReturnThis ( ) ,
48- from : vi . fn ( ) . mockReturnThis ( ) ,
49- where : vi . fn ( ) . mockReturnThis ( ) ,
50- insert : vi . fn ( ) . mockReturnThis ( ) ,
51- values : vi . fn ( ) . mockReturnThis ( ) ,
47+ select : vi . fn ( ) ,
48+ from : vi . fn ( ) ,
49+ where : vi . fn ( ) ,
50+ insert : vi . fn ( ) ,
51+ values : vi . fn ( ) ,
5252 returning : vi . fn ( ) ,
53- update : vi . fn ( ) . mockReturnThis ( ) ,
54- set : vi . fn ( ) . mockReturnThis ( ) ,
55- innerJoin : vi . fn ( ) . mockReturnThis ( ) ,
53+ update : vi . fn ( ) ,
54+ set : vi . fn ( ) ,
55+ innerJoin : vi . fn ( ) ,
5656 } as unknown as NodePgDatabase ;
5757
5858 const module : TestingModule = await Test . createTestingModule ( {
@@ -94,6 +94,45 @@ describe('AchievementRepository', () => {
9494 } ) ;
9595 } ) ;
9696
97+ describe ( 'findByTitleExcludingId' , ( ) => {
98+ it ( 'should return achievement when found with different id' , async ( ) => {
99+ ( mockDb . select as any ) . mockReturnValue ( {
100+ from : vi . fn ( ) . mockReturnValue ( {
101+ where : vi . fn ( ) . mockResolvedValue ( [ mockAchievement ] ) ,
102+ } ) ,
103+ } ) ;
104+
105+ const result = await repository . findByTitleExcludingId ( 'Первое достижение' , 999 ) ;
106+
107+ expect ( result ) . toEqual ( mockAchievement ) ;
108+ } ) ;
109+
110+ it ( 'should return undefined when not found' , async ( ) => {
111+ ( mockDb . select as any ) . mockReturnValue ( {
112+ from : vi . fn ( ) . mockReturnValue ( {
113+ where : vi . fn ( ) . mockResolvedValue ( [ ] ) ,
114+ } ) ,
115+ } ) ;
116+
117+ const result = await repository . findByTitleExcludingId ( 'Несуществующее' , 1 ) ;
118+
119+ expect ( result ) . toBeUndefined ( ) ;
120+ } ) ;
121+
122+ it ( 'should exclude specified id from search' , async ( ) => {
123+ ( mockDb . select as any ) . mockReturnValue ( {
124+ from : vi . fn ( ) . mockReturnValue ( {
125+ where : vi . fn ( ) . mockResolvedValue ( [ ] ) ,
126+ } ) ,
127+ } ) ;
128+
129+ const result = await repository . findByTitleExcludingId ( 'Первое достижение' , 1 ) ;
130+
131+ expect ( result ) . toBeUndefined ( ) ;
132+ expect ( mockDb . select ) . toHaveBeenCalled ( ) ;
133+ } ) ;
134+ } ) ;
135+
97136 describe ( 'findById' , ( ) => {
98137 it ( 'should return achievement when found' , async ( ) => {
99138 ( mockDb . select as any ) . mockReturnValue ( {
0 commit comments