Skip to content

Commit 7d818ee

Browse files
authored
Add tests to check for error response of assert artifact command (#574)
1 parent e4c47e7 commit 7d818ee

File tree

4 files changed

+35
-4
lines changed

4 files changed

+35
-4
lines changed

cmd/kosli/assertArtifact_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ type AssertArtifactCommandTestSuite struct {
2525
artifactName2 string
2626
artifact2Path string
2727
fingerprint2 string
28+
flowName3 string
29+
trailName string
30+
artifactName3 string
31+
artifact3Path string
32+
fingerprint3 string
2833
}
2934

3035
func (suite *AssertArtifactCommandTestSuite) SetupTest() {
@@ -60,6 +65,19 @@ func (suite *AssertArtifactCommandTestSuite) SetupTest() {
6065
require.NoError(suite.Suite.T(), err)
6166
CreateArtifact(suite.flowName1, suite.fingerprint2, suite.artifactName2, suite.Suite.T())
6267
CreateArtifact(suite.flowName2, suite.fingerprint2, suite.artifactName1, suite.Suite.T())
68+
69+
// Setup for asserting non-compliant artifact to check error response
70+
suite.flowName3 = "assert-non-compliant-artifact"
71+
suite.trailName = "non-compliant-trail"
72+
suite.artifactName3 = "arti-for-AssertArtifactCommandTestSuite-non-compliant"
73+
suite.artifact3Path = "testdata/artifacts/AssertArtifactCommandTestSuiteArtifact3.txt"
74+
suite.fingerprint3, err = GetSha256Digest(suite.artifact3Path, fingerprintOptions, logger)
75+
CreateFlow(suite.flowName3, suite.Suite.T())
76+
BeginTrail(suite.trailName, suite.flowName3, "", suite.Suite.T())
77+
CreateArtifactOnTrail(suite.flowName3, suite.trailName, "cli", suite.fingerprint3, suite.artifactName3, suite.Suite.T())
78+
require.NoError(suite.Suite.T(), err)
79+
CreateGenericArtifactAttestation(suite.flowName3, suite.trailName, suite.fingerprint3, "failing-attestation", false, suite.Suite.T())
80+
require.NoError(suite.Suite.T(), err)
6381
}
6482

6583
func (suite *AssertArtifactCommandTestSuite) TestAssertArtifactCmd() {
@@ -169,6 +187,18 @@ func (suite *AssertArtifactCommandTestSuite) TestAssertArtifactCmd() {
169187
cmd: fmt.Sprintf(`assert artifact --fingerprint %s --environment %s --policy %s %s`, suite.fingerprint1, suite.envName, suite.policyName1, suite.defaultKosliArguments),
170188
golden: "Error: Cannot specify both 'environment_name' and 'policy_name' at the same time\n",
171189
},
190+
{
191+
wantError: true,
192+
name: "16 asserting a single existing non-compliant artifact (using --fingerprint) results in non-zero exit",
193+
cmd: fmt.Sprintf(`assert artifact --fingerprint %s %s`, suite.fingerprint3, suite.defaultKosliArguments),
194+
goldenRegex: "^Error: NON-COMPLIANT\n",
195+
},
196+
{
197+
wantError: true,
198+
name: "17 asserting a single existing non-compliant artifact (using --artifact-type) results in non-zero exit",
199+
cmd: fmt.Sprintf(`assert artifact %s --artifact-type file %s`, suite.artifact3Path, suite.defaultKosliArguments),
200+
goldenRegex: "^Error: NON-COMPLIANT\n",
201+
},
172202
}
173203

174204
runTestCmd(suite.Suite.T(), tests)

cmd/kosli/getAttestation_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ func (suite *GetAttestationCommandTestSuite) SetupTest() {
4242
suite.fingerprint, err = GetSha256Digest(suite.artifactPath, fingerprintOptions, logger)
4343
require.NoError(suite.Suite.T(), err)
4444
CreateArtifactOnTrail(suite.flowName, suite.trailName, "cli", suite.fingerprint, suite.artifactName, suite.Suite.T())
45-
CreateGenericArtifactAttestation(suite.flowName, suite.trailName, suite.fingerprint, "first-artifact-attestation", suite.Suite.T())
45+
CreateGenericArtifactAttestation(suite.flowName, suite.trailName, suite.fingerprint, "first-artifact-attestation", true, suite.Suite.T())
4646
CreateGenericTrailAttestation(suite.flowName, suite.trailName, "first-trail-attestation", suite.Suite.T())
47-
CreateGenericArtifactAttestation(suite.flowName, suite.trailName, suite.fingerprint, "second-artifact-attestation", suite.Suite.T())
47+
CreateGenericArtifactAttestation(suite.flowName, suite.trailName, suite.fingerprint, "second-artifact-attestation", true, suite.Suite.T())
4848
CreateGenericTrailAttestation(suite.flowName, suite.trailName, "second-trail-attestation", suite.Suite.T())
4949
}
5050

cmd/kosli/testHelpers.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ func CreatePolicy(org, policyName string, t *testing.T) {
500500
require.NoError(t, err, "policy should be created without error")
501501
}
502502

503-
func CreateGenericArtifactAttestation(flowName, trailName, fingerprint, attestationName string, t *testing.T) {
503+
func CreateGenericArtifactAttestation(flowName, trailName, fingerprint, attestationName string, compliant bool, t *testing.T) {
504504
t.Helper()
505505
o := &attestGenericOptions{
506506
CommonAttestationOptions: &CommonAttestationOptions{
@@ -513,7 +513,7 @@ func CreateGenericArtifactAttestation(flowName, trailName, fingerprint, attestat
513513
CommonAttestationPayload: &CommonAttestationPayload{
514514
ArtifactFingerprint: fingerprint,
515515
},
516-
Compliant: true,
516+
Compliant: compliant,
517517
},
518518
}
519519
err := o.run([]string{})
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This shall only be used by the AssertArtifactCommandTestSuite and is the third, non-compliant, artifact

0 commit comments

Comments
 (0)