mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
109 lines
4.0 KiB
Python
109 lines
4.0 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# pylint:disable=line-too-long
|
||
|
import json
|
||
|
|
||
|
import test_engine
|
||
|
|
||
|
class TestDropdownConditionUserActions(test_engine.EngineTestCase):
|
||
|
def test_dropdown_condition_col_actions(self):
|
||
|
self.apply_user_action(['AddTable', 'Table1', [
|
||
|
{'id': 'A', 'type': 'Text'},
|
||
|
{'id': 'B', 'type': 'Text'},
|
||
|
{'id': 'C', 'type': 'Text'},
|
||
|
]])
|
||
|
|
||
|
# Check that setting dropdownCondition.text automatically sets a parsed version.
|
||
|
out_actions = self.apply_user_action(['UpdateRecord', '_grist_Tables_column', 1, {
|
||
|
"widgetOptions": json.dumps({
|
||
|
"dropdownCondition": {
|
||
|
"text": 'choice.Role == "Manager"',
|
||
|
},
|
||
|
}),
|
||
|
}])
|
||
|
self.assertPartialOutActions(out_actions, { "stored": [
|
||
|
["UpdateRecord", "_grist_Tables_column", 1, {
|
||
|
"widgetOptions": "{\"dropdownCondition\": {\"text\": "
|
||
|
+ "\"choice.Role == \\\"Manager\\\"\", \"parsed\": "
|
||
|
+ "\"[\\\"Eq\\\", [\\\"Attr\\\", [\\\"Name\\\", \\\"choice\\\"], "
|
||
|
+ "\\\"Role\\\"], [\\\"Const\\\", \\\"Manager\\\"]]\"}}"
|
||
|
}]
|
||
|
]})
|
||
|
out_actions = self.apply_user_action(['BulkUpdateRecord', '_grist_Tables_column', [2, 3], {
|
||
|
"widgetOptions": [
|
||
|
json.dumps({
|
||
|
"dropdownCondition": {
|
||
|
"text": 'choice == "Manager"',
|
||
|
},
|
||
|
}),
|
||
|
json.dumps({
|
||
|
"dropdownCondition": {
|
||
|
"text": '$Role == "Manager"',
|
||
|
},
|
||
|
}),
|
||
|
],
|
||
|
}])
|
||
|
self.assertPartialOutActions(out_actions, { "stored": [
|
||
|
["BulkUpdateRecord", "_grist_Tables_column", [2, 3], {
|
||
|
"widgetOptions": [
|
||
|
"{\"dropdownCondition\": {\"text\": \"choice == "
|
||
|
+ "\\\"Manager\\\"\", \"parsed\": \"[\\\"Eq\\\", "
|
||
|
+ "[\\\"Name\\\", \\\"choice\\\"], [\\\"Const\\\", \\\"Manager\\\"]]\"}}",
|
||
|
"{\"dropdownCondition\": {\"text\": \"$Role == "
|
||
|
+ "\\\"Manager\\\"\", \"parsed\": \"[\\\"Eq\\\", "
|
||
|
+ "[\\\"Attr\\\", [\\\"Name\\\", \\\"rec\\\"], \\\"Role\\\"], "
|
||
|
+ "[\\\"Const\\\", \\\"Manager\\\"]]\"}}",
|
||
|
]
|
||
|
}]
|
||
|
]})
|
||
|
|
||
|
def test_dropdown_condition_field_actions(self):
|
||
|
self.apply_user_action(['AddTable', 'Table1', [
|
||
|
{'id': 'A', 'type': 'Text'},
|
||
|
{'id': 'B', 'type': 'Text'},
|
||
|
{'id': 'C', 'type': 'Text'},
|
||
|
]])
|
||
|
|
||
|
# Check that setting dropdownCondition.text automatically sets a parsed version.
|
||
|
out_actions = self.apply_user_action(['UpdateRecord', '_grist_Views_section_field', 1, {
|
||
|
"widgetOptions": json.dumps({
|
||
|
"dropdownCondition": {
|
||
|
"text": 'choice.Role == "Manager"',
|
||
|
},
|
||
|
}),
|
||
|
}])
|
||
|
self.assertPartialOutActions(out_actions, { "stored": [
|
||
|
["UpdateRecord", "_grist_Views_section_field", 1, {
|
||
|
"widgetOptions": "{\"dropdownCondition\": {\"text\": "
|
||
|
+ "\"choice.Role == \\\"Manager\\\"\", \"parsed\": "
|
||
|
+ "\"[\\\"Eq\\\", [\\\"Attr\\\", [\\\"Name\\\", \\\"choice\\\"], "
|
||
|
+ "\\\"Role\\\"], [\\\"Const\\\", \\\"Manager\\\"]]\"}}"
|
||
|
}]
|
||
|
]})
|
||
|
out_actions = self.apply_user_action(['BulkUpdateRecord', '_grist_Views_section_field', [2, 3], {
|
||
|
"widgetOptions": [
|
||
|
json.dumps({
|
||
|
"dropdownCondition": {
|
||
|
"text": 'choice == "Manager"',
|
||
|
},
|
||
|
}),
|
||
|
json.dumps({
|
||
|
"dropdownCondition": {
|
||
|
"text": '$Role == "Manager"',
|
||
|
},
|
||
|
}),
|
||
|
],
|
||
|
}])
|
||
|
self.assertPartialOutActions(out_actions, { "stored": [
|
||
|
["BulkUpdateRecord", "_grist_Views_section_field", [2, 3], {
|
||
|
"widgetOptions": [
|
||
|
"{\"dropdownCondition\": {\"text\": \"choice == "
|
||
|
+ "\\\"Manager\\\"\", \"parsed\": \"[\\\"Eq\\\", "
|
||
|
+ "[\\\"Name\\\", \\\"choice\\\"], [\\\"Const\\\", \\\"Manager\\\"]]\"}}",
|
||
|
"{\"dropdownCondition\": {\"text\": \"$Role == "
|
||
|
+ "\\\"Manager\\\"\", \"parsed\": \"[\\\"Eq\\\", "
|
||
|
+ "[\\\"Attr\\\", [\\\"Name\\\", \\\"rec\\\"], \\\"Role\\\"], "
|
||
|
+ "[\\\"Const\\\", \\\"Manager\\\"]]\"}}",
|
||
|
]
|
||
|
}]
|
||
|
]})
|