Skip to content

Commit

Permalink
fix: add logic to set segment to lowest priority if not set (#4381)
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewelwell authored Jul 24, 2024
1 parent 369acbe commit a78b284
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
2 changes: 2 additions & 0 deletions api/features/feature_segments/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ def save(self, **kwargs: typing.Any) -> FeatureSegment:

if priority:
feature_segment.to(priority)
else:
feature_segment.bottom(priority)

return feature_segment

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from environments.models import Environment
from features.feature_segments.serializers import (
CustomCreateSegmentOverrideFeatureSegmentSerializer,
FeatureSegmentChangePrioritiesSerializer,
)
from features.models import Feature, FeatureSegment, FeatureState
Expand Down Expand Up @@ -58,3 +59,24 @@ def test_feature_segment_change_priorities_serializer_validate_fails_if_non_uniq
# Then
assert is_valid is False
assert serializer.errors


def test_feature_segment_serializer_save_sets_lowest_priority_if_none_given(
feature: Feature,
segment_featurestate: FeatureState,
feature_segment: FeatureSegment,
another_segment: Segment,
environment: Environment,
) -> None:
# Given
serializer = CustomCreateSegmentOverrideFeatureSegmentSerializer(
data={"segment": another_segment.id}
)
serializer.is_valid(raise_exception=True)

# When
new_feature_segment = serializer.save(feature=feature, environment=environment)

# Then
assert feature_segment.priority == 0
assert new_feature_segment.priority == 1

0 comments on commit a78b284

Please sign in to comment.