Compare commits
1 Commits
49c5174ac4
...
617eab9492
Author | SHA1 | Date |
---|---|---|
Yann Weber | 617eab9492 |
|
@ -4,6 +4,7 @@ from django.test.utils import CaptureQueriesContext
|
|||
|
||||
from chrono.agendas.models import Agenda, Category
|
||||
from chrono.apps.snapshot.models import CategorySnapshot
|
||||
from chrono.apps.user_preferences.models import UserPreferences
|
||||
from tests.utils import login
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
@ -97,3 +98,75 @@ def test_inspect_category(app, admin_user):
|
|||
with CaptureQueriesContext(connection) as ctx:
|
||||
resp = resp.click('Inspect')
|
||||
assert len(ctx.captured_queries) == 3
|
||||
|
||||
|
||||
def test_category_fold_preferences(app, admin_user):
|
||||
category1 = Category.objects.create(label='Foo bar')
|
||||
category2 = Category.objects.create(label='Toto')
|
||||
|
||||
agenda1 = Agenda.objects.create(label='Foo bar', category=category1)
|
||||
agenda2 = Agenda.objects.create(label='Titi', category=category2)
|
||||
|
||||
app = login(app)
|
||||
|
||||
resp = app.get('/manage/')
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-1]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' not in elt[0].classes
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-2]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' not in elt[0].classes
|
||||
|
||||
user_prefs = UserPreferences.objects.get(user=admin_user)
|
||||
user_prefs.update_preference('folded-admin-forms-group-1', True)
|
||||
resp = app.get('/manage/')
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-1]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' in elt[0].classes
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-2]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' not in elt[0].classes
|
||||
|
||||
# Order is preserved when adding a new category : preferences are preserved
|
||||
category3 = Category.objects.create(label='Tata')
|
||||
agenda3 = Agenda.objects.create(label='Titi', category=category3)
|
||||
|
||||
user_prefs.update_preference('folded-admin-forms-group-1', False)
|
||||
user_prefs.update_preference('folded-admin-forms-group-2', True)
|
||||
resp = app.get('/manage/')
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-1]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' not in elt[0].classes
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-2]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' in elt[0].classes
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-3]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' not in elt[0].classes
|
||||
|
||||
# Preferences are "shifted" when a category is deleted
|
||||
agenda2.delete()
|
||||
resp = app.get('/manage/')
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-1]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' not in elt[0].classes
|
||||
|
||||
elt = resp.pyquery.find('div[data-section-folded-pref-name=folded-admin-forms-group-2]')
|
||||
assert len(elt) == 1
|
||||
assert 'foldable' in elt[0].classes
|
||||
assert 'folded' in elt[0].classes
|
||||
|
|
Loading…
Reference in New Issue