1- import { useFeatures } from "@contexts/Features.hook" ;
2- import { useSettings } from "@hooks/use-settings" ;
31import { createFeatures } from "@test/utils/features" ;
42import { fireEvent , render , screen } from "@testing-library/react" ;
5- import { describe , expect , it , vi } from "vitest" ;
3+ import {
4+ beforeEach ,
5+ describe ,
6+ expect ,
7+ it ,
8+ type MockedFunction ,
9+ vi ,
10+ } from "vitest" ;
611
712import SettingsPage from "./SettingsPage" ;
813
14+ type UseFeatures = typeof import ( "@contexts/Features.hook" ) . useFeatures ;
15+ type UseSettings = typeof import ( "@hooks/use-settings" ) . useSettings ;
16+
17+ const { mockUseFeatures, mockUseSettings } = vi . hoisted ( ( ) => ( {
18+ mockUseFeatures : vi . fn ( ) as MockedFunction < UseFeatures > ,
19+ mockUseSettings : vi . fn ( ) as MockedFunction < UseSettings > ,
20+ } ) ) ;
21+
922// Mock useSettings hook
1023vi . mock ( "@hooks/use-settings" , ( ) => ( {
11- useSettings : vi . fn ( ) ,
24+ useSettings : mockUseSettings ,
1225} ) ) ;
1326
1427// Mock useFeatures hook
1528vi . mock ( "@contexts/Features.hook" , ( ) => ( {
16- useFeatures : vi . fn ( ) ,
29+ useFeatures : mockUseFeatures ,
1730} ) ) ;
1831
1932describe ( "SettingsPage" , ( ) => {
33+ beforeEach ( ( ) => {
34+ mockUseFeatures . mockReset ( ) ;
35+ mockUseSettings . mockReset ( ) ;
36+ } ) ;
37+
2038 it ( "renders correctly with default settings" , ( ) => {
2139 // Mock settings hook
2240 const mockSetShowJobArgs = vi . fn ( ) ;
2341 const mockClearShowJobArgs = vi . fn ( ) ;
24- ( useSettings as unknown as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
42+ mockUseSettings . mockReturnValue ( {
2543 clearShowJobArgs : mockClearShowJobArgs ,
2644 setShowJobArgs : mockSetShowJobArgs ,
2745 settings : { } ,
2846 shouldShowJobArgs : true ,
2947 } ) ;
3048
3149 // Mock features
32- ( useFeatures as unknown as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
50+ mockUseFeatures . mockReturnValue ( {
3351 features : createFeatures ( {
3452 jobListHideArgsByDefault : false ,
3553 } ) ,
@@ -61,15 +79,15 @@ describe("SettingsPage", () => {
6179 // Mock settings hook with override
6280 const mockSetShowJobArgs = vi . fn ( ) ;
6381 const mockClearShowJobArgs = vi . fn ( ) ;
64- ( useSettings as unknown as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
82+ mockUseSettings . mockReturnValue ( {
6583 clearShowJobArgs : mockClearShowJobArgs ,
6684 setShowJobArgs : mockSetShowJobArgs ,
6785 settings : { showJobArgs : true } ,
6886 shouldShowJobArgs : true ,
6987 } ) ;
7088
7189 // Mock features
72- ( useFeatures as unknown as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
90+ mockUseFeatures . mockReturnValue ( {
7391 features : createFeatures ( {
7492 jobListHideArgsByDefault : true ,
7593 } ) ,
@@ -96,15 +114,15 @@ describe("SettingsPage", () => {
96114 // Mock settings hook
97115 const mockSetShowJobArgs = vi . fn ( ) ;
98116 const mockClearShowJobArgs = vi . fn ( ) ;
99- ( useSettings as unknown as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
117+ mockUseSettings . mockReturnValue ( {
100118 clearShowJobArgs : mockClearShowJobArgs ,
101119 setShowJobArgs : mockSetShowJobArgs ,
102120 settings : { } ,
103121 shouldShowJobArgs : false ,
104122 } ) ;
105123
106124 // Mock features
107- ( useFeatures as unknown as ReturnType < typeof vi . fn > ) . mockReturnValue ( {
125+ mockUseFeatures . mockReturnValue ( {
108126 features : createFeatures ( {
109127 jobListHideArgsByDefault : true ,
110128 } ) ,
0 commit comments