mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Distinct style rules for summary columns
Summary: Summary columns now have their own conditional rules, which are not shared with sister columns. Test Plan: New test Reviewers: alexmojaki Reviewed By: alexmojaki Subscribers: dsagal Differential Revision: https://phab.getgrist.com/D3388
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import json
|
||||
|
||||
from collections import namedtuple
|
||||
from summary import skip_rules_update
|
||||
import testutil
|
||||
import test_engine
|
||||
|
||||
@@ -52,6 +56,41 @@ class TestRules(test_engine.EngineTestCase):
|
||||
rule = list(rules)[rule_index]
|
||||
return self.apply_user_action(['RemoveColumn', 'Inventory', rule.colId])
|
||||
|
||||
def test_summary_updates(self):
|
||||
Col = namedtuple('Col', 'widgetOptions')
|
||||
col = Col(None)
|
||||
# Should remove rules from update
|
||||
self.assertEqual({}, skip_rules_update(col, {'rules': [15]}))
|
||||
# Should leave col_updates untouched when there are no rules.
|
||||
col_updates = {'type': 'Int'}
|
||||
self.assertEqual(col_updates, skip_rules_update(col, col_updates))
|
||||
|
||||
# Should return same dict when not updating ruleOptions
|
||||
col_updates = {'widgetOptions': '{"color": "red"}'}
|
||||
self.assertEqual(col_updates, skip_rules_update(col, col_updates))
|
||||
col = Col('{"color": "red"}')
|
||||
self.assertEqual(col_updates, skip_rules_update(col, col_updates))
|
||||
|
||||
# Should remove ruleOptions from update
|
||||
col_updates = {'widgetOptions': '{"rulesOptions": [{"color": "black"}], "color": "blue"}'}
|
||||
self.assertEqual({'widgetOptions': '{"color": "blue"}'},
|
||||
skip_rules_update(col, col_updates))
|
||||
col_updates = {'widgetOptions': '{"rulesOptions": [], "color": "blue"}'}
|
||||
self.assertEqual({'widgetOptions': '{"color": "blue"}'},
|
||||
skip_rules_update(col, col_updates))
|
||||
|
||||
# Should preserve original ruleOptions
|
||||
col = Col('{"rulesOptions": [{"color":"red"}], "color": "blue"}')
|
||||
col_updates = {'widgetOptions': '{"rulesOptions": [{"color": "black"}], "color": "red"}'}
|
||||
updated = skip_rules_update(col, col_updates)
|
||||
self.assertEqual({"rulesOptions": [{"color": "red"}], "color": "red"},
|
||||
json.loads(updated.get('widgetOptions')))
|
||||
col_updates = {'widgetOptions': '{"color": "red"}'}
|
||||
updated = skip_rules_update(col, col_updates)
|
||||
self.assertEqual({"rulesOptions": [{"color": "red"}], "color": "red"},
|
||||
json.loads(updated.get('widgetOptions')))
|
||||
|
||||
|
||||
def test_simple_rules(self):
|
||||
self.load_sample(self.sample)
|
||||
# Mark all records with Stock = 0
|
||||
|
||||
Reference in New Issue
Block a user