File size: 1,913 Bytes
f87fe7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2b5a90d
f87fe7f
 
 
 
2b5a90d
f87fe7f
 
 
 
2b5a90d
f87fe7f
 
 
 
2b5a90d
f87fe7f
 
2b5a90d
f87fe7f
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""
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