@@ -232,7 +232,7 @@ describe('organization voice composer', () => {
232232 async ( isInitialView ) => {
233233 await render ( isInitialView )
234234 const mic = container . querySelector < HTMLButtonElement > ( 'button[aria-label="Voice input"]' ) !
235- expect ( container . querySelector ( '[aria-label="Model and reasoning effort"]' ) ) . toBeNull ( )
235+ expect ( container . querySelector ( '[aria-label="Reasoning effort"]' ) ) . toBeNull ( )
236236 expect ( container . querySelector ( '[aria-label="Fast mode"]' ) ) . toBeNull ( )
237237 expect ( mic . previousElementSibling ?. getAttribute ( 'aria-label' ) ) . toBe ( 'Search level' )
238238 expect ( mic . parentElement ?. nextElementSibling ?. getAttribute ( 'aria-label' ) ) . toBe ( 'Send' )
@@ -405,7 +405,7 @@ it('uploads an agent document with explicit mode while Assistant remains image-o
405405 } )
406406 )
407407 expect ( container . querySelector ( 'input[type="file"]' ) ?. getAttribute ( 'accept' ) ) . toContain ( '.txt' )
408- expect ( container . querySelector ( 'button[aria-label="Model and reasoning effort"]' ) ) . not . toBeNull ( )
408+ expect ( container . querySelector ( 'button[aria-label="Reasoning effort"]' ) ) . not . toBeNull ( )
409409} )
410410
411411it ( 'shows a flat custom skill row with its workspace label and sends scoped context' , async ( ) => {
@@ -493,7 +493,7 @@ it.each([true, false])(
493493 expect ( mocks . skillQuery ) . not . toHaveBeenCalled ( )
494494 expect ( container . querySelector ( '[aria-label="Skills"]' ) ) . toBeNull ( )
495495 expect ( container . querySelector ( '[aria-label="Add resources"]' ) ) . toBeNull ( )
496- expect ( container . querySelector ( '[aria-label="Model and reasoning effort"]' ) ) . toBeNull ( )
496+ expect ( container . querySelector ( '[aria-label="Reasoning effort"]' ) ) . toBeNull ( )
497497 expect ( container . querySelector ( '[aria-label="Fast mode"]' ) ) . toBeNull ( )
498498 expect ( Boolean ( container . querySelector ( '[aria-label="Conversation mode"]' ) ) ) . toBe ( canChoose )
499499 expect ( container . querySelector ( '[aria-label="Attach images"]' ) ) . toBeNull ( )
@@ -772,15 +772,44 @@ describe('Search levels', () => {
772772 } )
773773} )
774774
775+ it ( 'offers only the five Build efforts and changes effort without losing the draft' , async ( ) => {
776+ useMothershipEffortStore . getState ( ) . setEffort ( 'high' )
777+ await render ( true , 'Build draft' , 'agent' )
778+ const picker = container . querySelector < HTMLButtonElement > ( '[aria-label="Reasoning effort"]' ) !
779+ expect ( picker ?. textContent ) . toBe ( 'High' )
780+ expect ( container . textContent ) . not . toMatch ( / G P T - 6 A s t r a | O p u s / )
781+ await act ( async ( ) =>
782+ picker . dispatchEvent ( new KeyboardEvent ( 'keydown' , { key : 'Enter' , bubbles : true } ) )
783+ )
784+ const options = [ ...document . querySelectorAll < HTMLElement > ( '[role="menuitemradio"]' ) ]
785+ expect ( options . map ( ( item ) => item . textContent ) ) . toEqual ( [
786+ 'Low' ,
787+ 'Medium' ,
788+ 'High' ,
789+ 'Extra High' ,
790+ 'Max' ,
791+ ] )
792+ expect ( options [ 2 ] . getAttribute ( 'aria-checked' ) ) . toBe ( 'true' )
793+ await act ( async ( ) => options [ 3 ] . click ( ) )
794+ expect ( picker . textContent ) . toBe ( 'Extra High' )
795+ expect ( useMothershipEffortStore . getState ( ) ) . toMatchObject ( {
796+ effort : 'xhigh' ,
797+ modelSelection : { model : 'gpt-6-astra' } ,
798+ } )
799+ expect ( container . querySelector < HTMLInputElement > ( '[aria-label="Ask Sim"]' ) ! . value ) . toBe (
800+ 'Build draft'
801+ )
802+ expect ( mocks . submit ) . not . toHaveBeenCalled ( )
803+ } )
804+
775805it ( 'keeps Build Fast independent of Search levels' , async ( ) => {
776- useMothershipEffortStore . getState ( ) . setModel ( 'gpt-6-astra' )
777806 useMothershipEffortStore . getState ( ) . setFastMode ( false )
778807 await render ( true , 'Build' , 'agent' )
779808 expect ( container . querySelector ( '[aria-label="Search level"]' ) ) . toBeNull ( )
780809 const fast = container . querySelector < HTMLButtonElement > ( '[aria-label="Fast mode"]' ) !
781810 await act ( async ( ) => fast . click ( ) )
782811 expect ( useMothershipEffortStore . getState ( ) . modelSelection . fastMode ) . toBe ( true )
783- expect ( container . querySelector ( '[aria-label="Model and reasoning effort"]' ) ) . not . toBeNull ( )
812+ expect ( container . querySelector ( '[aria-label="Reasoning effort"]' ) ) . not . toBeNull ( )
784813 await act ( async ( ) => useMothershipEffortStore . getState ( ) . setFastMode ( false ) )
785814} )
786815
0 commit comments