@@ -66,9 +66,8 @@ public async Task FarmMode_Disabled_RedirectsToDashboard()
6666
6767 // Navigate to root — should redirect to dashboard
6868 await Page . GotoAsync ( _fixture . BaseUrl ) ;
69- var welcome = Page . Locator ( "[data-testid='dashboard-welcome']" ) ;
70- await welcome . WaitForAsync ( new LocatorWaitForOptions { Timeout = 15_000 } ) ;
71- Assert . True ( await welcome . IsVisibleAsync ( ) ) ;
69+ await Page . WaitForURLAsync ( "**/dashboard" , new PageWaitForURLOptions { Timeout = 15_000 } ) ;
70+ Assert . Contains ( "dashboard" , Page . Url , StringComparison . OrdinalIgnoreCase ) ;
7271 }
7372
7473 [ Fact ]
@@ -78,57 +77,54 @@ public async Task FarmMode_Disabled_ShowsAddPrinterInNavbar()
7877 await Page . GotoAsync ( $ "{ _fixture . BaseUrl } /dashboard") ;
7978 await Page . Locator ( ".sidebar" ) . WaitForAsync ( new LocatorWaitForOptions { Timeout = 15_000 } ) ;
8079
80+ // Add Printer button no longer appears in navbar for single-printer mode
8181 var addPrinterLink = Page . Locator ( "[data-testid='header-add-printer']" ) ;
82- Assert . True ( await addPrinterLink . IsVisibleAsync ( ) ) ;
82+ Assert . True ( await addPrinterLink . CountAsync ( ) == 0 , "Add Printer button should NOT appear in navbar when farm mode is off" ) ;
8383 }
8484
8585 // ── Farm Name ──
8686
8787 [ Fact ]
8888 public async Task FarmName_DisplaysInHeader ( )
8989 {
90+ // Farm mode off and no active farm — header brand should show the app name
9091 await NavigateToSettingsAsync ( ) ;
92+ var toggle = Page . Locator ( "#farmModeEnabled" ) ;
93+ if ( await toggle . IsCheckedAsync ( ) )
94+ {
95+ await toggle . UncheckAsync ( ) ;
96+ await SaveSettingsAsync ( ) ;
97+ }
9198
92- // Set a farm name — press Tab after fill to trigger Blazor @bind (change event)
93- var nameInput = Page . Locator ( "#farmName" ) ;
94- await nameInput . ClearAsync ( ) ;
95- await nameInput . FillAsync ( "Test Farm" ) ;
96- await nameInput . PressAsync ( "Tab" ) ;
97- await SaveSettingsAsync ( ) ;
98-
99- // Navigate away and back to verify the farm name persists in the header
100- await Page . GotoAsync ( _fixture . BaseUrl ) ;
99+ await Page . GotoAsync ( $ "{ _fixture . BaseUrl } /dashboard") ;
101100 await Page . Locator ( ".sidebar" ) . WaitForAsync ( new LocatorWaitForOptions { Timeout = 15_000 } ) ;
102101
103102 var brand = Page . Locator ( "header .brand-label" ) ;
104103 var text = await brand . InnerTextAsync ( ) ;
105- Assert . Equal ( "Test Farm" , text ) ;
106-
107- // Clean up — reset farm name
108- await NavigateToSettingsAsync ( ) ;
109- nameInput = Page . Locator ( "#farmName" ) ;
110- await nameInput . ClearAsync ( ) ;
111- await nameInput . PressAsync ( "Tab" ) ;
112- await SaveSettingsAsync ( ) ;
104+ Assert . Equal ( "MakerPrompt" , text ) ;
113105 }
114106
115107 [ Fact ]
116108 public async Task FarmName_ShowsInSidebar_WhenFarmModeEnabled ( )
117109 {
118- await NavigateToSettingsAsync ( ) ;
110+ await EnableFarmModeAsync ( ) ;
119111
120- // Enable farm mode and set name
121- var toggle = Page . Locator ( "#farmModeEnabled" ) ;
122- if ( ! await toggle . IsCheckedAsync ( ) )
123- {
124- await toggle . CheckAsync ( ) ;
125- await Page . WaitForTimeoutAsync ( 300 ) ;
126- }
127- var nameInput = Page . Locator ( "#farmName" ) ;
128- await nameInput . ClearAsync ( ) ;
112+ // Create a farm and switch to it so the config FarmName gets populated
113+ var nameInput = Page . Locator ( "#farmNewName" ) ;
114+ await nameInput . WaitForAsync ( new LocatorWaitForOptions { Timeout = 5_000 } ) ;
129115 await nameInput . FillAsync ( "Sidebar Farm" ) ;
130116 await nameInput . PressAsync ( "Tab" ) ;
131- await SaveSettingsAsync ( ) ;
117+ await Page . WaitForTimeoutAsync ( 300 ) ;
118+ var createBtn = Page . Locator ( "[data-testid='farm-create-btn']" ) ;
119+ await createBtn . ClickAsync ( ) ;
120+ await Page . WaitForTimeoutAsync ( 500 ) ;
121+
122+ // Switch to the newly created farm
123+ var selectEl = Page . Locator ( "select" ) ;
124+ await selectEl . SelectOptionAsync ( new SelectOptionValue { Label = "Sidebar Farm" } ) ;
125+ var switchBtn = Page . Locator ( "[data-testid='farm-switch-btn']" ) ;
126+ await switchBtn . ClickAsync ( ) ;
127+ await Page . WaitForTimeoutAsync ( 500 ) ;
132128
133129 // Verify farm name appears in sidebar
134130 await Page . GotoAsync ( $ "{ _fixture . BaseUrl } /fleet") ;
@@ -139,18 +135,7 @@ public async Task FarmName_ShowsInSidebar_WhenFarmModeEnabled()
139135 var text = await sidebarFarm . InnerTextAsync ( ) ;
140136 Assert . Contains ( "Sidebar Farm" , text ) ;
141137
142- // Clean up — disable farm mode and clear name
143- await NavigateToSettingsAsync ( ) ;
144- toggle = Page . Locator ( "#farmModeEnabled" ) ;
145- if ( await toggle . IsCheckedAsync ( ) )
146- {
147- await toggle . UncheckAsync ( ) ;
148- await Page . WaitForTimeoutAsync ( 300 ) ;
149- }
150- nameInput = Page . Locator ( "#farmName" ) ;
151- await nameInput . ClearAsync ( ) ;
152- await nameInput . PressAsync ( "Tab" ) ;
153- await SaveSettingsAsync ( ) ;
138+ await RestoreDefaultFarmModeAsync ( ) ;
154139 }
155140
156141 // ── Farm Configuration Management ──
@@ -239,7 +224,7 @@ public async Task FarmConfig_HiddenWhenFarmModeDisabled()
239224 private async Task NavigateToSettingsAsync ( )
240225 {
241226 await Page . GotoAsync ( $ "{ _fixture . BaseUrl } /settings") ;
242- await Page . Locator ( "#farmName " ) . WaitForAsync ( new LocatorWaitForOptions { Timeout = 15_000 } ) ;
227+ await Page . Locator ( "#farmModeEnabled " ) . WaitForAsync ( new LocatorWaitForOptions { Timeout = 15_000 } ) ;
243228 }
244229
245230 private async Task SaveSettingsAsync ( )
0 commit comments