diff options
Diffstat (limited to 'tests/ui-smoke-tests.js')
| -rw-r--r-- | tests/ui-smoke-tests.js | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/tests/ui-smoke-tests.js b/tests/ui-smoke-tests.js index 84fe4c4..e88a811 100644 --- a/tests/ui-smoke-tests.js +++ b/tests/ui-smoke-tests.js @@ -93,22 +93,44 @@ async function runPageScript(scriptPath, markup, probe) { describe('popup page script smoke', () => { it('initializes language options and model select from markup', async () => { const r = await runPageScript('../src/popup/popup.js', ` - <input type="checkbox" id="enabled-toggle"> - <select id="model-select"></select> - <button id="reload-models"></button> - <p id="model-status" hidden></p> - <select id="language-select"></select> - <button id="open-options"></button> + <header class="popup-header"> + <h1>Ollama Translations</h1> + <nav class="mode-nav"> + <button id="nav-settings" type="button" class="nav-btn active">設定</button> + <button id="nav-translation" type="button" class="nav-btn">翻訳</button> + </nav> + </header> + <section id="translation-mode" class="mode" hidden> + <p id="translation-status" class="status"></p> + <p id="translation-meta" class="meta" hidden></p> + <div id="translation-text" class="translation-text"></div> + <p id="translation-error" class="status error" hidden></p> + <div class="actions"> + <button id="copy-translation" type="button" disabled>コピー</button> + <button id="regenerate-translation" type="button" disabled>再生成</button> + <button id="open-options-from-translation" type="button">設定を開く</button> + </div> + </section> + <section id="settings-mode" class="mode"> + <input type="checkbox" id="enabled-toggle"> + <select id="model-select"></select> + <button id="reload-models"></button> + <p id="model-status" hidden></p> + <select id="language-select"></select> + <button id="open-options"></button> + </section> `, () => ({ langOptions: document.getElementById('language-select').options.length, langValue: document.getElementById('language-select').value, modelOptions: document.getElementById('model-select').options.length, - firstModel: document.getElementById('model-select').options[0]?.textContent ?? null + firstModel: document.getElementById('model-select').options[0]?.textContent ?? null, + translationHidden: document.getElementById('translation-mode').hidden })); assertEqual(r.langOptions, LANGUAGES.length); assertEqual(r.langValue, 'ja'); // default target language assertTrue(r.modelOptions > 0, 'model select should be populated'); assertEqual(r.firstModel, 'fake-model'); + assertEqual(r.translationHidden, true); // no translation yet: settings mode }); }); |
