'use strict'; const test = require('node:test'); const assert = require('node:assert/strict'); const fs = require('node:fs'); const path = require('node:path'); const html = fs.readFileSync(path.join(__dirname, 'index.html'), 'utf8'); const appEntryJs = fs.readFileSync(path.join(__dirname, 'app.js'), 'utf8'); const backgroundJs = fs.readFileSync(path.join(__dirname, 'background.js'), 'utf8'); const chromeImportJs = fs.readFileSync(path.join(__dirname, 'chrome-tab-groups-import.js'), 'utf8'); const runtimeJs = fs.readFileSync(path.join(__dirname, 'dashboard-runtime.js'), 'utf8'); const themeJs = fs.readFileSync(path.join(__dirname, 'theme-controls.js'), 'utf8'); const drawerJs = fs.readFileSync(path.join(__dirname, 'drawer-manager.js'), 'utf8'); const helperJs = fs.readFileSync(path.join(__dirname, 'ui-helpers.js'), 'utf8'); const tabSessionsJs = fs.existsSync(path.join(__dirname, 'tab-sessions.js')) ? fs.readFileSync(path.join(__dirname, 'tab-sessions.js'), 'utf8') : ''; const sessionManagerJs = fs.existsSync(path.join(__dirname, 'session-manager.js')) ? fs.readFileSync(path.join(__dirname, 'session-manager.js'), 'utf8') : ''; const popupJs = fs.readFileSync(path.join(__dirname, 'popup', 'popup.js'), 'utf8'); const popupHtml = fs.readFileSync(path.join(__dirname, 'popup', 'popup.html'), 'utf8'); const configJs = fs.readFileSync(path.join(__dirname, 'config.js'), 'utf8'); const configLoaderJs = fs.readFileSync(path.join(__dirname, 'config-loader.js'), 'utf8'); const appJs = [appEntryJs, runtimeJs, themeJs, drawerJs, helperJs].join('\n'); test('saved tabs page scripts load before dashboard runtime and expose a top page selector', () => { assert.match(html, /id="workspaceTopNav"/); assert.match(html, /id="homePage"/); assert.match(html, /id="savedTabsPage"/); assert.match(runtimeJs, /id="workspacePageSwitch"/); assert.match(runtimeJs, /function renderWorkspacePageSwitch\(currentPage = 'home'\)/); assert.match(runtimeJs, /data-action="switch-workspace-page"[\s\S]*data-page="home"/); assert.match(runtimeJs, /data-action="switch-workspace-page"[\s\S]*data-page="saved-tabs"/); assert.match(runtimeJs, /function renderWorkspaceThemeTools\(\) \{\s*const languagePreference = runtimeGetLanguagePreference \? runtimeGetLanguagePreference\(\) : 'auto';/); assert.match(runtimeJs, /renderWorkspaceThemeTools\(\)/); assert.match(runtimeJs, /syncWorkspaceTopNavMarkup/); assert.match(runtimeJs, /id="themeMenuTrigger"/); assert.match(sessionManagerJs, /renderSavedTabsNavArea/); assert.match(sessionManagerJs, /saved-session-nav-button/); assert.match(sessionManagerJs, /managerGetGroupIcon/); assert.match(html, /