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
1 change: 1 addition & 0 deletions src/eligibility_signposting_api/config/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@
CONSUMER_MAPPING_FILE_NAME = "consumer_mapping_config.json"

CACHE_TTL_SECONDS = int(os.getenv("CONFIG_CACHE_TTL_SECONDS", "1800"))
STATUS_TEXT_OVERRIDE_ACTION_TYPE = "norender_StatusTextOverride"
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ class MatchedActionDetail:
rule_name: campaign_config.RuleName | None = None
rule_priority: campaign_config.RulePriority | None = None
actions: list[SuggestedAction] | None = None
status_text_override: StatusText | None = None


@dataclass
Expand Down
5 changes: 5 additions & 0 deletions tests/unit/config/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from yarl import URL

from eligibility_signposting_api.config.config import LOG_LEVEL, AwsAccessKey, AwsRegion, AwsSecretAccessKey, config
from eligibility_signposting_api.config.constants import STATUS_TEXT_OVERRIDE_ACTION_TYPE
from eligibility_signposting_api.repos.campaign_repo import BucketName
from eligibility_signposting_api.repos.person_repo import TableName

Expand Down Expand Up @@ -48,3 +49,7 @@ def test_config_without_env_variable():
assert config_data_without_env["s3_endpoint"] == URL("http://localhost:4566")
assert config_data_without_env["rules_bucket_name"] == BucketName("test-rules-bucket")
assert config_data_without_env["log_level"] == LOG_LEVEL


def test_status_text_override_action_type_constant_value():
assert STATUS_TEXT_OVERRIDE_ACTION_TYPE == "norender_StatusTextOverride"
Comment thread
oneeb-nhs marked this conversation as resolved.
58 changes: 57 additions & 1 deletion tests/unit/model/test_status.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
from eligibility_signposting_api.model.eligibility_status import ConditionName, RuleType, Status, StatusText
from hamcrest import assert_that, has_properties

from eligibility_signposting_api.model.campaign_config import RuleName, RulePriority
from eligibility_signposting_api.model.eligibility_status import (
ConditionName,
MatchedActionDetail,
RuleType,
Status,
StatusText,
SuggestedAction,
)


class TestStatus:
Expand Down Expand Up @@ -45,3 +55,49 @@ def test_get_action_rule_type(self):
assert Status.not_actionable.get_action_rule_type() == RuleType(RuleType.not_actionable_actions)

assert Status.actionable.get_action_rule_type() == RuleType(RuleType.redirect)


def test_matched_action_detail_default_status_text_override_is_none():
action_detail = MatchedActionDetail()

assert_that(action_detail, has_properties(status_text_override=None))


def test_matched_action_detail_stores_status_text_override_value():
action_detail = MatchedActionDetail(status_text_override=StatusText("X"))

assert_that(action_detail, has_properties(status_text_override=StatusText("X")))


def test_matched_action_detail_existing_constructor_still_works_with_three_args():
actions: list[SuggestedAction] = []

action_detail = MatchedActionDetail(RuleName("RuleA"), RulePriority(1), actions)

assert_that(
action_detail,
has_properties(
rule_name=RuleName("RuleA"),
rule_priority=RulePriority(1),
actions=actions,
status_text_override=StatusText(None),
),
)


def test_matched_action_detail_existing_constructor_works_with_four_args():
Comment thread
oneeb-nhs marked this conversation as resolved.
actions: list[SuggestedAction] = []

action_detail = MatchedActionDetail(
RuleName("RuleA"), RulePriority(1), actions, status_text_override=StatusText("Override")
)

assert_that(
action_detail,
has_properties(
rule_name=RuleName("RuleA"),
rule_priority=RulePriority(1),
actions=actions,
status_text_override=StatusText("Override"),
),
)
Loading