fix: replace sidebar controls with resize handle
This commit is contained in:
@@ -29,11 +29,11 @@ class NormalizePreferencesTest(SimpleTestCase):
|
||||
|
||||
|
||||
class SidebarLayoutTest(SimpleTestCase):
|
||||
def test_normalizes_width_to_supported_steps(self):
|
||||
def test_clamps_width_without_discrete_steps(self):
|
||||
self.assertEqual(normalize_sidebar_width(None), SIDEBAR_WIDTH_DEFAULT)
|
||||
self.assertEqual(normalize_sidebar_width(100), SIDEBAR_WIDTH_MIN)
|
||||
self.assertEqual(normalize_sidebar_width(500), SIDEBAR_WIDTH_MAX)
|
||||
self.assertEqual(normalize_sidebar_width(300), 312)
|
||||
self.assertEqual(normalize_sidebar_width(300), 300)
|
||||
|
||||
def test_toggles_icon_only_mode(self):
|
||||
collapsed, width = update_sidebar_layout(False, SIDEBAR_WIDTH_DEFAULT, "toggle")
|
||||
@@ -41,12 +41,15 @@ class SidebarLayoutTest(SimpleTestCase):
|
||||
self.assertTrue(collapsed)
|
||||
self.assertEqual(width, SIDEBAR_WIDTH_DEFAULT)
|
||||
|
||||
def test_resizes_within_limits(self):
|
||||
self.assertEqual(update_sidebar_layout(False, SIDEBAR_WIDTH_MIN, "smaller")[1], SIDEBAR_WIDTH_MIN)
|
||||
self.assertEqual(update_sidebar_layout(False, SIDEBAR_WIDTH_MAX, "larger")[1], SIDEBAR_WIDTH_MAX)
|
||||
self.assertLess(
|
||||
update_sidebar_layout(False, SIDEBAR_WIDTH_DEFAULT, "smaller")[1],
|
||||
SIDEBAR_WIDTH_DEFAULT,
|
||||
def test_resizes_continuously_within_limits_and_expands(self):
|
||||
self.assertEqual(update_sidebar_layout(True, SIDEBAR_WIDTH_DEFAULT, "resize", 301), (False, 301))
|
||||
self.assertEqual(
|
||||
update_sidebar_layout(False, SIDEBAR_WIDTH_DEFAULT, "resize", 100),
|
||||
(False, SIDEBAR_WIDTH_MIN),
|
||||
)
|
||||
self.assertEqual(
|
||||
update_sidebar_layout(False, SIDEBAR_WIDTH_DEFAULT, "resize", 500),
|
||||
(False, SIDEBAR_WIDTH_MAX),
|
||||
)
|
||||
|
||||
def test_rejects_unknown_action(self):
|
||||
|
||||
@@ -25,6 +25,24 @@ class NavigationLayoutViewTest(SimpleTestCase):
|
||||
self.assertTrue(preference.sidebar_collapsed)
|
||||
preference.save.assert_called_once_with(update_fields=("sidebar_collapsed", "sidebar_width", "updated"))
|
||||
|
||||
@patch("netbox_utilities.views.navigation_customization_enabled", return_value=True)
|
||||
@patch("netbox_utilities.views.NavigationPreference.objects.get_or_create")
|
||||
def test_saves_continuously_resized_width(self, get_or_create, _feature_enabled):
|
||||
preference = MagicMock(sidebar_collapsed=True, sidebar_width=288)
|
||||
get_or_create.return_value = (preference, False)
|
||||
request = self.factory.post(
|
||||
"/plugins/utilities/navigation/layout/",
|
||||
{"action": "resize", "width": "317"},
|
||||
)
|
||||
request.user = MagicMock()
|
||||
|
||||
response = NavigationLayoutView().post(request)
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(json.loads(response.content), {"collapsed": False, "width": 317})
|
||||
self.assertFalse(preference.sidebar_collapsed)
|
||||
self.assertEqual(preference.sidebar_width, 317)
|
||||
|
||||
@patch("netbox_utilities.views.navigation_customization_enabled", return_value=True)
|
||||
@patch("netbox_utilities.views.NavigationPreference.objects.get_or_create")
|
||||
def test_rejects_unknown_layout_action(self, get_or_create, _feature_enabled):
|
||||
|
||||
Reference in New Issue
Block a user