new _applets partial to govern applet list; home.html updated accordingly to incl partial; fixed seed migrations for palette convention from last commit; new text_view ITs & views to govern applet visibility/toggling
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -3,9 +3,15 @@ from selenium.webdriver.common.by import By
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
|
||||
from .base import FunctionalTest
|
||||
from apps.dashboard.models import Applet
|
||||
|
||||
|
||||
class DashboardMaintenanceTest(FunctionalTest):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
Applet.objects.get_or_create(slug="username", defaults={"name": "Username"})
|
||||
Applet.objects.get_or_create(slug="palette", defaults={"name": "Palette"})
|
||||
|
||||
def test_user_without_username_can_claim_unclaimed_username(self):
|
||||
# 1. Create a pre-authenticated session for discoman@example.com
|
||||
self.create_pre_authenticated_session("discoman@example.com")
|
||||
@@ -51,18 +57,20 @@ class DashboardMaintenanceTest(FunctionalTest):
|
||||
dash_gear.click()
|
||||
# 4. A menu appears; wait_for el w. id="id_applet_menu"
|
||||
self.wait_for(
|
||||
lambda: self.browser.find_element(By.ID, "id_applet_menu")
|
||||
lambda: self.assertTrue(
|
||||
self.browser.find_element(By.ID, "id_applet_menu").is_displayed()
|
||||
)
|
||||
)
|
||||
# 5. Find two checkboxes in menu, name="username" & name="palette"; assert both .is_selected()
|
||||
menu = self.browser.find_element(By.ID, "id_applet_menu")
|
||||
username_cb = menu.find_element(By.NAME, "username")
|
||||
palette_cb = menu.find_element(By.NAME, "palette")
|
||||
username_cb = menu.find_element(By.CSS_SELECTOR, '[name="applets"][value="username"]')
|
||||
palette_cb = menu.find_element(By.CSS_SELECTOR, '[name="applets"][value="palette"]')
|
||||
self.assertTrue(username_cb.is_selected())
|
||||
self.assertTrue(palette_cb.is_selected())
|
||||
# 6. Click palette box to uncheck it
|
||||
palette_cb.click()
|
||||
self.assertFalse(palette_cb.is_selected())
|
||||
self.browser.execute_script("window.__no_reload_marker = True")
|
||||
self.browser.execute_script("window.__no_reload_marker = true")
|
||||
# 7. Submit the menu form via [type="submit"] btn inside menu
|
||||
menu.find_element(By.CSS_SELECTOR, '[type="submit"]').click()
|
||||
self.wait_for(
|
||||
@@ -82,6 +90,13 @@ class DashboardMaintenanceTest(FunctionalTest):
|
||||
self.browser.find_element(By.ID, "id_applet_username")
|
||||
# 10. Click gear again, find menu, find palette checkbox; assert now NOT selected
|
||||
dash_gear.click()
|
||||
self.wait_for(
|
||||
lambda: self.assertTrue(
|
||||
self.browser.find_element(By.ID, "id_applet_menu").is_displayed()
|
||||
)
|
||||
)
|
||||
menu = self.browser.find_element(By.ID, "id_applet_menu")
|
||||
palette_cb = menu.find_element(By.CSS_SELECTOR, '[name="applets"][value="palette"]')
|
||||
self.assertFalse(palette_cb.is_selected())
|
||||
# 11. Click it to re-check box; submit
|
||||
palette_cb.click()
|
||||
|
||||
Reference in New Issue
Block a user