Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ async def to_action_field(
description=await self.description(context),
is_read_only=await self.is_read_only(context),
is_required=await self.is_required(context),
value=await self.value(context) or default_value,
value=await self.value(context) if callable(self._value) else default_value,
default_value=await self.default_value(context),
collection_name=None,
enum_values=None,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
from unittest import TestCase
from unittest.mock import Mock, patch

from forestadmin.datasource_toolkit.decorators.action.context.single import ActionContextSingle

if sys.version_info >= (3, 9):
import zoneinfo
else:
Expand Down Expand Up @@ -150,6 +152,35 @@ def setUpClass(cls) -> None:
)


class TestStringDynamicField(BaseTestDynamicField):
def test_to_action_field_when_dynamic_value_it_should_not_use_default_value(self):
for return_dynamic_value in ["", None, "abc"]:
plain_dynamic_field = PlainStringDynamicField(
type=ActionFieldType.STRING,
label="string",
value=lambda ctx: return_dynamic_value,
default_value="default value",
)
dynamic_field = FormElementFactory.build(plain_dynamic_field)
context = ActionContextSingle(self.collection_product, None, {}, None, {}, "string")
action_field = self.loop.run_until_complete(dynamic_field.to_action_field(context, "current value", None))
self.assertEqual(action_field["value"], return_dynamic_value)

def test_to_action_field_when_value_is_static_value_it_should_not_use_default_value(self):
for return_value in ["", None, "abc"]:
plain_dynamic_field = PlainStringDynamicField(
type=ActionFieldType.STRING,
label="string",
value=return_value,
default_value="default value",
)
dynamic_field = FormElementFactory.build(plain_dynamic_field)
context = ActionContextSingle(self.collection_product, None, {}, None, {}, "string")
action_field = self.loop.run_until_complete(dynamic_field.to_action_field(context, "current value", None))
print(action_field["value"], return_value)
self.assertEqual(action_field["value"], "current value")


class TestFileDynamicField(BaseTestDynamicField):
def test_when_having_default_value_field_should_be_dynamic(self):
plain_dynamic_field = PlainFileDynamicField(
Expand Down