From f530e7b14129f1852f86485923e16c1806db0cff Mon Sep 17 00:00:00 2001 From: Vasil Sirakov Date: Wed, 25 Sep 2024 15:06:08 +0300 Subject: [PATCH] Add unit test to the function that determines which regions are applicable. Signed-off-by: Vasil Sirakov --- providers/aws/resources/aws_ec2_test.go | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/providers/aws/resources/aws_ec2_test.go b/providers/aws/resources/aws_ec2_test.go index 2f528564a..a8a375d94 100644 --- a/providers/aws/resources/aws_ec2_test.go +++ b/providers/aws/resources/aws_ec2_test.go @@ -76,3 +76,35 @@ func TestShouldExcludeInstance(t *testing.T) { require.False(t, shouldExcludeInstance(instance, filters)) }) } + +func TestDetermineApplicableRegions(t *testing.T) { + t.Run("allow regions override initial region list", func(t *testing.T) { + initialRegions := []string{"a", "b"} + allowedRegions := []string{"b", "c"} + excludedRegions := []string{} + + expected := []string{"b", "c"} + actual := determineApplicableRegions(initialRegions, allowedRegions, excludedRegions) + require.ElementsMatch(t, expected, actual) + }) + + t.Run("excluded regions work correctly", func(t *testing.T) { + initialRegions := []string{"a", "b"} + allowedRegions := []string{} + excludedRegions := []string{"b"} + + expected := []string{"a"} + actual := determineApplicableRegions(initialRegions, allowedRegions, excludedRegions) + require.ElementsMatch(t, expected, actual) + }) + + t.Run("excluded regions not present in the initial slice are ignored", func(t *testing.T) { + initialRegions := []string{"a", "b"} + allowedRegions := []string{} + excludedRegions := []string{"b", "c", "d", "e"} + + expected := []string{"a"} + actual := determineApplicableRegions(initialRegions, allowedRegions, excludedRegions) + require.ElementsMatch(t, expected, actual) + }) +}