""" Settings tab tests — verify settings load, display, and save correctly. Run with: pytest tests/e2e_settings.py -v """ import pytest from playwright.sync_api import Page, expect from tests.conftest import logged_in_page # noqa: F401 def go_to_settings(page: Page): """Navigate to the Settings tab.""" page.click('button[role=tab]:has-text("⚙️ Settings")') page.wait_for_timeout(1500) class TestSettingsTab: def test_settings_tab_accessible(self, logged_in_page: Page): """Settings tab loads without error.""" go_to_settings(logged_in_page) body_text = logged_in_page.inner_text('body') assert any(word in body_text.lower() for word in ["settings", "save", "model"]) def test_save_settings_button_present(self, logged_in_page: Page): """Save Settings button is visible in the Settings tab.""" go_to_settings(logged_in_page) expect(logged_in_page.locator('button:has-text("💾 Save Settings")')).to_be_visible(timeout=10000) def test_reset_to_defaults_button_present(self, logged_in_page: Page): """Reset to Defaults button is visible.""" go_to_settings(logged_in_page) expect(logged_in_page.locator('button:has-text("🔄 Reset to Defaults")')).to_be_visible(timeout=10000) def test_change_password_section_present(self, logged_in_page: Page): """Change Password section is accessible for the test user.""" go_to_settings(logged_in_page) expect(logged_in_page.locator('button:has-text("🔒 Change Password")')).to_be_visible(timeout=10000) def test_admin_sections_not_visible_for_test_user(self, logged_in_page: Page): """Admin-only sections should not show other users' data for testrunner.""" go_to_settings(logged_in_page) body_text = logged_in_page.inner_text('body') assert "mike.boone@thoughtspot.com" not in body_text