From 150dbc9bd362c7fb0374cdc00e0c7c256c5473bb Mon Sep 17 00:00:00 2001 From: djelusic Date: Mon, 28 Feb 2022 11:16:52 +0100 Subject: [PATCH] fix unit tests --- cli/controller/testdata/template.yml | 11 +++++++++ domain/auth_test.go | 16 ++++++------- node/api/setup/setup_test.go | 5 +++- node/api/setup/testdata/create.tf | 35 ++++++++++++++++++++++++---- node/terraform/terraform_test.go | 5 +++- node/terraform/testdata/setup.tf | 35 ++++++++++++++++++++++++---- 6 files changed, 89 insertions(+), 18 deletions(-) diff --git a/cli/controller/testdata/template.yml b/cli/controller/testdata/template.yml index 6d6a93ba..b7415814 100644 --- a/cli/controller/testdata/template.yml +++ b/cli/controller/testdata/template.yml @@ -105,6 +105,17 @@ Resources: - logs:DeleteLogDelivery Resource: - "*" + - Effect: Allow + Action: + - ssm:PutParameter + - ssm:AddTagsToResource + - ssm:ListTagsForResource + - ssm:GetParameter + - ssm:GetParameters + - ssm:DescribeParameters + - ssm:DeleteParameter + Resource: + - "*" MantilSetupLambda: Type: AWS::Lambda::Function Properties: diff --git a/domain/auth_test.go b/domain/auth_test.go index ee044b66..978405e1 100644 --- a/domain/auth_test.go +++ b/domain/auth_test.go @@ -42,9 +42,11 @@ func TestReadUserClaims(t *testing.T) { } publicKey, privateKey, err := token.KeyPair() + require.NoError(t, err) + headers := make(map[string]string) - _, err = ReadAccessToken(headers) + _, err = ReadAccessToken(headers, "") require.Error(t, err) require.Contains(t, err.Error(), "token not found") @@ -52,22 +54,20 @@ func TestReadUserClaims(t *testing.T) { require.NoError(t, err) headers[strings.ToLower(AccessTokenHeader)] = token - _, err = ReadAccessToken(headers) + _, err = ReadAccessToken(headers, "") require.Error(t, err) - require.Contains(t, err.Error(), "key not found") + require.Contains(t, err.Error(), "invalid key") - // happy path - t.Setenv(EnvPublicKey, publicKey) - c2, err := ReadAccessToken(headers) + c2, err := ReadAccessToken(headers, publicKey) require.NoError(t, err) require.Equal(t, &c, c2) headers[strings.ToLower(AccessTokenHeader)] = token - c2, err = ReadAccessToken(headers) + c2, err = ReadAccessToken(headers, publicKey) require.NoError(t, err) require.Equal(t, &c, c2) headers[AccessTokenHeader] = "foo" - _, err = ReadAccessToken(headers) + _, err = ReadAccessToken(headers, publicKey) require.Error(t, err) } diff --git a/node/api/setup/setup_test.go b/node/api/setup/setup_test.go index 481d2403..08eb5e6b 100644 --- a/node/api/setup/setup_test.go +++ b/node/api/setup/setup_test.go @@ -20,13 +20,16 @@ func TestTerraformRender(t *testing.T) { Region: "aws-region", ResourceSuffix: "abcdef", AuthEnv: map[string]string{ - "publicKey": "key", + "publicKey": "public_key", }, ResourceTags: map[string]string{ "tag1": "value1", "tag2": "value2", }, NamingTemplate: "mantil-%s", + PublicKey: "public_key", + PrivateKey: "private_key", + GithubOrg: "github_org", } tf, err := terraform.Setup(data) require.NoError(t, err) diff --git a/node/api/setup/testdata/create.tf b/node/api/setup/testdata/create.tf index 9a28d556..bcf72dae 100644 --- a/node/api/setup/testdata/create.tf +++ b/node/api/setup/testdata/create.tf @@ -7,6 +7,10 @@ locals { tag1 = "value1" tag2 = "value2" } + ssm_prefix = "/mantil-node-abcdef" + auth_env = { + publicKey = "public_key" + } } terraform { @@ -35,6 +39,7 @@ module "functions" { region = local.aws_region cli_role_arn = module.cli_role.arn naming_template = "mantil-%s" + auth_env = local.auth_env } @@ -58,17 +63,39 @@ module "api" { route : "/${f.name}" uri : f.invoke_arn, lambda_name : f.arn, - enable_auth : true, + enable_auth : f.name != "auth" ? true : false, } ] authorizer = { authorization_header = "Authorization" - env = { - publicKey = "key" - } + env = local.auth_env } } +module "params" { + source = "../../modules/params" + path_prefix = local.ssm_prefix + params = [ + { + name : "public_key" + value : "public_key" + }, + { + name : "private_key" + value : "private_key" + secure : true + }, + { + name: "github_org" + value : "github_org" + }, + { + name: "github_user" + value : "" + } + ] +} + # expose aws region and profile for use in shell scripts output "aws_region" { value = local.aws_region diff --git a/node/terraform/terraform_test.go b/node/terraform/terraform_test.go index acf27257..a504b38b 100644 --- a/node/terraform/terraform_test.go +++ b/node/terraform/terraform_test.go @@ -30,13 +30,16 @@ func TestRenderSetup(t *testing.T) { Region: "aws-region", ResourceSuffix: "abcdef", AuthEnv: map[string]string{ - "publicKey": "key", + "publicKey": "public_key", }, ResourceTags: map[string]string{ "tag1": "value1", "tag2": "value2", }, NamingTemplate: "prefix-%s-suffix", + PublicKey: "public_key", + PrivateKey: "private_key", + GithubOrg: "github_org", } tf, err := renderSetup(data) require.NoError(t, err) diff --git a/node/terraform/testdata/setup.tf b/node/terraform/testdata/setup.tf index bfc45a28..8cfd8d5b 100644 --- a/node/terraform/testdata/setup.tf +++ b/node/terraform/testdata/setup.tf @@ -7,6 +7,10 @@ locals { tag1 = "value1" tag2 = "value2" } + ssm_prefix = "/mantil-node-abcdef" + auth_env = { + publicKey = "public_key" + } } terraform { @@ -35,6 +39,7 @@ module "functions" { region = local.aws_region cli_role_arn = module.cli_role.arn naming_template = "prefix-%s-suffix" + auth_env = local.auth_env } @@ -58,17 +63,39 @@ module "api" { route : "/${f.name}" uri : f.invoke_arn, lambda_name : f.arn, - enable_auth : true, + enable_auth : f.name != "auth" ? true : false, } ] authorizer = { authorization_header = "Authorization" - env = { - publicKey = "key" - } + env = local.auth_env } } +module "params" { + source = "../../modules/params" + path_prefix = local.ssm_prefix + params = [ + { + name : "public_key" + value : "public_key" + }, + { + name : "private_key" + value : "private_key" + secure : true + }, + { + name: "github_org" + value : "github_org" + }, + { + name: "github_user" + value : "" + } + ] +} + # expose aws region and profile for use in shell scripts output "aws_region" { value = local.aws_region