diff --git a/verifiers/internal/gha/npm_sigstore_tuf_test.go b/verifiers/internal/gha/npm_sigstore_tuf_test.go index 84a3e81a4..6f0e94cae 100644 --- a/verifiers/internal/gha/npm_sigstore_tuf_test.go +++ b/verifiers/internal/gha/npm_sigstore_tuf_test.go @@ -15,10 +15,13 @@ const ( testTargetKeyMaterial = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1Olb3zMAFFxXKHiIkQO5cJ3Yhl5i6UPp+IhuteBJbuHcA5UogKo0EWtlWwW6KSaKoTNEYL7JlCQiVnkhBktUgg==" ) +// mockSigstoreTufClient a mock implementation of SigstoreTufClient type mockSigstoreTufClient struct { + SigstoreTufClient localPath string } +// GetTarget mock implementation of GetTarget for the mockSigstoreTufClient func (client mockSigstoreTufClient) GetTarget(targetPath string) ([]byte, error) { content, err := os.ReadFile(targetPath) if err != nil { @@ -27,18 +30,13 @@ func (client mockSigstoreTufClient) GetTarget(targetPath string) ([]byte, error) return content, nil } -func mustReadLocalFile(t *testing.T, filePath string) []byte { - content, err := os.ReadFile(filePath) - assert.NoErrorf(t, err, "reading local file: %s", err) - return content -} - // TestGetTarget ensures we can parse the target file func TestGetNpmjsKeysTarget(t *testing.T) { t.Run("parsing local registry.npmjs.org_keys.json", func(t *testing.T) { - content := mustReadLocalFile(t, testTargetLocalFilePath) + content, err := os.ReadFile(testTargetLocalFilePath) + assert.NoErrorf(t, err, "reading local file: %s", err) var expectedKeys NpmjsKeysTarget - err := json.Unmarshal(content, &expectedKeys) + err = json.Unmarshal(content, &expectedKeys) assert.NoErrorf(t, err, "parsing mock file: %s", err) mockClient := mockSigstoreTufClient{localPath: testTargetLocalFilePath} @@ -48,13 +46,14 @@ func TestGetNpmjsKeysTarget(t *testing.T) { }) t.Run("parsing non-existant registry.npmjs.org_keys.json", func(t *testing.T) { - nonExistantPath := "./testdatamy-fake-path" + nonExistantPath := "./testdata/my-fake-path" mockClient := mockSigstoreTufClient{localPath: nonExistantPath} _, err := GetNpmjsKeysTarget(mockClient, nonExistantPath) assert.Error(t, err) }) } +// TestGetAttestationKeyMaterialByKeyId ensure that we find the "npm:attestations" key material, given keyid func TestGetAttestationKeyMaterialByKeyId(t *testing.T) { tests := []struct { name string @@ -72,7 +71,7 @@ func TestGetAttestationKeyMaterialByKeyId(t *testing.T) { expectError: false, }, { - name: "missing attestation keyusage", + name: "missing the 'npm:attestations' keyusage", localPath: "./testdata/wrong_keyusage_registry.npmjs.org_keys.json", keyId: testTargetKeyId, expectedKeyMaterial: testTargetKeyMaterial,