@@ -15286,6 +15286,19 @@ describe('App session callbacks', () => {
1528615286 ).toBeNull();
1528715287 });
1528815288
15289+ it('hides Mobile access by default in built-in and custom chat headers', async () => {
15290+ const { container, rerender } = renderApp();
15291+ await flush();
15292+ expect(container.querySelector('[aria-label="Mobile access"]')).toBeNull();
15293+
15294+ const renderChatHeader = vi.fn(() => null);
15295+ rerender({ renderChatHeader });
15296+ await flush();
15297+ expect(renderChatHeader).toHaveBeenLastCalledWith(
15298+ expect.objectContaining({ onOpenLocalControlSettings: undefined }),
15299+ );
15300+ });
15301+
1528915302 it('exposes the Local Control settings deep link to a custom chat header', async () => {
1529015303 const renderChatHeader = vi.fn(
1529115304 ({ onOpenLocalControlSettings }: ChatHeaderRenderInfo) => (
@@ -15294,7 +15307,10 @@ describe('App session callbacks', () => {
1529415307 </button>
1529515308 ),
1529615309 );
15297- const { container } = renderApp({ renderChatHeader });
15310+ const { container } = renderApp({
15311+ renderChatHeader,
15312+ header: { showMobileAccess: true },
15313+ });
1529815314 await flush();
1529915315
1530015316 expect(renderChatHeader).toHaveBeenCalledWith(
@@ -15319,7 +15335,7 @@ describe('App session callbacks', () => {
1531915335 mockConnection.sessionContext = { kind: 'standalone' };
1532015336 mockConnection.workspaceCwd = '';
1532115337 const renderChatHeader = vi.fn(() => null);
15322- renderApp({ renderChatHeader });
15338+ renderApp({ renderChatHeader, header: { showMobileAccess: true } });
1532315339 await flush();
1532415340
1532515341 expect(renderChatHeader).toHaveBeenCalledWith(
@@ -15331,7 +15347,7 @@ describe('App session callbacks', () => {
1533115347 });
1533215348
1533315349 it('opens Settings deep-linked to Daemon from the main chat header QR entry', async () => {
15334- const { container } = renderApp();
15350+ const { container } = renderApp({ header: { showMobileAccess: true } } );
1533515351 await flush();
1533615352
1533715353 const entry = container.querySelector<HTMLButtonElement>(
@@ -32117,9 +32133,27 @@ describe('App session callbacks', () => {
3211732133 }
3211832134 });
3211932135
32136+ it('hides the split header Mobile access entry by default and when disabled', async () => {
32137+ const props = { sidebar: false as const, splitSessionIds: ['s1'] };
32138+ const { container, rerender } = renderApp(props);
32139+ await flush();
32140+ expect(container.querySelector('[aria-label="Mobile access"]')).toBeNull();
32141+
32142+ rerender({ ...props, header: { showMobileAccess: true } });
32143+ await flush();
32144+ expect(
32145+ container.querySelector('[aria-label="Mobile access"]'),
32146+ ).not.toBeNull();
32147+
32148+ rerender({ ...props, header: { showMobileAccess: false } });
32149+ await flush();
32150+ expect(container.querySelector('[aria-label="Mobile access"]')).toBeNull();
32151+ });
32152+
3212032153 it('does not add a token usage pane action unless it is enabled', async () => {
3212132154 const { container } = renderApp({
3212232155 sidebar: false,
32156+ header: { showMobileAccess: true },
3212332157 splitSessionIds: ['s1'],
3212432158 });
3212532159 await flush();
@@ -32142,6 +32176,7 @@ describe('App session callbacks', () => {
3214232176 it('deep-links Settings to Daemon from the QR entry and clears the link on any panel close', async () => {
3214332177 const { container, rerender } = renderApp({
3214432178 sidebar: false,
32179+ header: { showMobileAccess: true },
3214532180 splitSessionIds: ['s1'],
3214632181 });
3214732182 await flush();
0 commit comments