diff options
author | Markus Legner <markus.legner@siemens.com> | 2021-11-16 13:32:51 +0300 |
---|---|---|
committer | Markus Legner <markus.legner@siemens.com> | 2021-11-22 11:05:36 +0300 |
commit | 155bb27b1ea2533dfa338bc80a64665c588a20f7 (patch) | |
tree | aaafdee23aef6f8bdc51402587925a7fa61a2152 | |
parent | 50095a1ceda366e5ed6b7adfe72d3387c44d1be8 (diff) |
chore(auth): add unit tests for domainAllowed
-rw-r--r-- | internal/auth/auth_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/internal/auth/auth_test.go b/internal/auth/auth_test.go index 74c0370c..d55c5a46 100644 --- a/internal/auth/auth_test.go +++ b/internal/auth/auth_test.go @@ -2,6 +2,7 @@ package auth import ( "bytes" + "context" "fmt" "io" "net/http" @@ -513,3 +514,52 @@ func TestCheckResponseForInvalidTokenWhenNotInvalidToken(t *testing.T) { require.False(t, auth.CheckResponseForInvalidToken(result, r, resp)) } + +func TestDomainAllowed(t *testing.T) { + auth := createTestAuth(t, "", "") + mockCtrl := gomock.NewController(t) + mockSource := mocks.NewMockSource(mockCtrl) + + testCases := []struct { + name string + expected bool + }{ + { + name: "pages.unrelated-site.com", + expected: false, + }, + { + name: "prepended-pages.gitlab-example.com", + expected: false, + }, + { + name: "pages.gitlab-example.com.unrelated-site.com", + expected: false, + }, + { + name: "pages.gitlab-example.com", + expected: true, + }, + { + name: "subdomain.pages.gitlab-example.com", + expected: true, + }, + { + name: "multi.sub.domain.pages.gitlab-example.com", + expected: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + ctx := context.Background() + + if !tc.expected { + mockSource.EXPECT().GetDomain(ctx, tc.name).Return(nil, nil) + } + + actual := auth.domainAllowed(ctx, tc.name, mockSource) + require.Equal(t, tc.expected, actual) + }) + } +} |