@@ -801,6 +801,38 @@ describe("SettingsPage", () => {
801801 expect ( screen . queryByLabelText ( "启动命令参数" ) ) . not . toBeInTheDocument ( ) ;
802802 } ) ;
803803
804+ it ( "uses a scrollable mobile detail layout for secondary settings pages without fill-height classes" , async ( ) => {
805+ viewportMocks . viewport = "mobile" ;
806+ const sendCommand = vi . fn ( ) . mockResolvedValue ( { } ) ;
807+ const store = createConnectedStore ( sendCommand ) ;
808+
809+ renderSettingsPage ( store ) ;
810+ fireEvent . click ( screen . getByRole ( "button" , { name : "通用" } ) ) ;
811+
812+ await waitFor ( ( ) => {
813+ expect ( screen . getByText ( "通知" ) ) . toBeInTheDocument ( ) ;
814+ } ) ;
815+
816+ const detailBody = document . querySelector ( ".settings-body--mobile" ) ;
817+ const detailContent = document . querySelector ( ".settings-content--mobile" ) ;
818+
819+ expect ( detailBody ) . not . toBeNull ( ) ;
820+ expect ( detailContent ) . not . toBeNull ( ) ;
821+ expect ( document . querySelector ( ".settings-body--mobile-detail" ) ) . not . toBeNull ( ) ;
822+ expect ( document . querySelector ( ".settings-content--mobile-detail" ) ) . not . toBeNull ( ) ;
823+ expect ( document . querySelector ( ".settings-body--mobile.settings-body--fill-height" ) ) . toBeNull ( ) ;
824+ expect (
825+ document . querySelector ( ".settings-content--mobile.settings-content--fill-height" )
826+ ) . toBeNull ( ) ;
827+
828+ fireEvent . click ( screen . getByRole ( "button" , { name : "返回" } ) ) ;
829+
830+ expect ( screen . getByRole ( "button" , { name : "Providers" } ) ) . toBeInTheDocument ( ) ;
831+ expect ( document . querySelector ( ".settings-body--mobile" ) ) . toBeNull ( ) ;
832+ expect ( document . querySelector ( ".settings-body--mobile-detail" ) ) . toBeNull ( ) ;
833+ expect ( document . querySelector ( ".settings-content--mobile-detail" ) ) . toBeNull ( ) ;
834+ } ) ;
835+
804836 it ( "shows provider base settings first on mobile and enters config files through the secondary action" , async ( ) => {
805837 viewportMocks . viewport = "mobile" ;
806838 const sendCommand = vi . fn ( ) . mockImplementation ( async ( op : string , args : unknown ) => {
0 commit comments