From ce5bde4379e4ce7c9ba3ba520e39d7b14258c98d Mon Sep 17 00:00:00 2001 From: Meredith Lancaster Date: Mon, 28 Oct 2024 12:59:04 -0600 Subject: [PATCH] simplify signer workflow validation tests Signed-off-by: Meredith Lancaster --- pkg/cmd/attestation/verify/policy_test.go | 46 ++++++++++------------- 1 file changed, 19 insertions(+), 27 deletions(-) diff --git a/pkg/cmd/attestation/verify/policy_test.go b/pkg/cmd/attestation/verify/policy_test.go index ae1e52955..bc831e46d 100644 --- a/pkg/cmd/attestation/verify/policy_test.go +++ b/pkg/cmd/attestation/verify/policy_test.go @@ -36,18 +36,28 @@ func TestValidateSignerWorkflow(t *testing.T) { providedSignerWorkflow string expectedWorkflowRegex string host string + expectErr bool + errContains string } testcases := []testcase{ { name: "workflow with no host specified", providedSignerWorkflow: "github/artifact-attestations-workflows/.github/workflows/attest.yml", - expectedWorkflowRegex: "^https://github.com/github/artifact-attestations-workflows/.github/workflows/attest.yml", + expectErr: true, + errContains: "unknown host", }, { - name: "workflow with host specified", + name: "workflow with default host", + providedSignerWorkflow: "github/artifact-attestations-workflows/.github/workflows/attest.yml", + expectedWorkflowRegex: "^https://github.com/github/artifact-attestations-workflows/.github/workflows/attest.yml", + host: "github.com", + }, + { + name: "workflow with workflow URL included", providedSignerWorkflow: "github.com/github/artifact-attestations-workflows/.github/workflows/attest.yml", expectedWorkflowRegex: "^https://github.com/github/artifact-attestations-workflows/.github/workflows/attest.yml", + host: "github.com", }, { name: "workflow with GH_HOST set", @@ -61,12 +71,6 @@ func TestValidateSignerWorkflow(t *testing.T) { expectedWorkflowRegex: "^https://authedhost.github.com/github/artifact-attestations-workflows/.github/workflows/attest.yml", host: "authedhost.github.com", }, - { - name: "workflow with authenticated host", - providedSignerWorkflow: "github/artifact-attestations-workflows/.github/workflows/attest.yml", - expectedWorkflowRegex: "^https://authedhost.github.com/github/artifact-attestations-workflows/.github/workflows/attest.yml", - host: "authedhost.github.com", - }, } for _, tc := range testcases { @@ -78,28 +82,16 @@ func TestValidateSignerWorkflow(t *testing.T) { } // All host resolution is done verify.go:RunE - if tc.host == "" { - // Set to default host - tc.host = "github.com" - } opts.Hostname = tc.host - workflowRegex, err := validateSignerWorkflow(opts) - require.NoError(t, err) require.Equal(t, tc.expectedWorkflowRegex, workflowRegex) + if tc.expectErr { + require.Error(t, err) + require.ErrorContains(t, err, tc.errContains) + } else { + require.NoError(t, err) + require.Equal(t, tc.expectedWorkflowRegex, workflowRegex) + } } } - -func TestValidateSignerWorkflowNoHost(t *testing.T) { - cmdFactory := factory.New("test") - opts := &Options{ - Config: cmdFactory.Config, - SignerWorkflow: "github/artifact-attestations-workflows/.github/workflows/attest.yml", - } - - workflowRegex, err := validateSignerWorkflow(opts) - require.Error(t, err) - require.ErrorContains(t, err, "unknown host") - require.Equal(t, "", workflowRegex) -}