summaryrefslogtreecommitdiff
path: root/tests/ui-smoke-tests.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui-smoke-tests.js')
-rw-r--r--tests/ui-smoke-tests.js36
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
});
});