Skip to content

Commit 829bf60

Browse files
author
Kaan Yalti
committed
enhancement(5235): removed unpack specific test from upgrade tests, added test cases in the upgrade error handling test
1 parent 002e60c commit 829bf60

File tree

1 file changed

+63
-8
lines changed

1 file changed

+63
-8
lines changed

internal/pkg/agent/application/upgrade/upgrade_test.go

Lines changed: 63 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1311,38 +1311,94 @@ func (m *mockArtifactDownloader) withFleetServerURI(fleetServerURI string) {
13111311
m.fleetServerURI = fleetServerURI
13121312
}
13131313

1314+
type mockUnpacker struct {
1315+
returnPackageMetadata packageMetadata
1316+
returnPackageMetadataError error
1317+
returnUnpackResult UnpackResult
1318+
returnUnpackError error
1319+
}
1320+
1321+
func (m *mockUnpacker) getPackageMetadata(archivePath string) (packageMetadata, error) {
1322+
return m.returnPackageMetadata, m.returnPackageMetadataError
1323+
}
1324+
1325+
func (m *mockUnpacker) unpack(version, archivePath, dataDir string, flavor string) (UnpackResult, error) {
1326+
return m.returnUnpackResult, m.returnUnpackError
1327+
}
1328+
13141329
func TestUpgradeErrorHandling(t *testing.T) {
13151330
log, _ := loggertest.New("test")
13161331
testError := errors.New("test error")
1332+
type upgraderMocker func(upgrader *Upgrader)
13171333

13181334
type testCase struct {
13191335
isDiskSpaceErrorResult bool
13201336
expectedError error
1337+
upgraderMocker upgraderMocker
13211338
}
13221339

13231340
testCases := map[string]testCase{
13241341
"should return error if downloadArtifact fails": {
13251342
isDiskSpaceErrorResult: false,
13261343
expectedError: testError,
1344+
upgraderMocker: func(upgrader *Upgrader) {
1345+
upgrader.artifactDownloader = &mockArtifactDownloader{
1346+
returnError: testError,
1347+
}
1348+
},
1349+
},
1350+
"should return error if getPackageMetadata fails": {
1351+
isDiskSpaceErrorResult: false,
1352+
expectedError: testError,
1353+
upgraderMocker: func(upgrader *Upgrader) {
1354+
upgrader.artifactDownloader = &mockArtifactDownloader{}
1355+
upgrader.unpacker = &mockUnpacker{
1356+
returnPackageMetadataError: testError,
1357+
}
1358+
},
1359+
},
1360+
"should return error if unpack fails": {
1361+
isDiskSpaceErrorResult: false,
1362+
expectedError: testError,
1363+
upgraderMocker: func(upgrader *Upgrader) {
1364+
upgrader.artifactDownloader = &mockArtifactDownloader{}
1365+
upgrader.extractAgentVersion = func(metadata packageMetadata, upgradeVersion string) agentVersion {
1366+
return agentVersion{
1367+
version: upgradeVersion,
1368+
snapshot: false,
1369+
hash: metadata.hash,
1370+
}
1371+
}
1372+
upgrader.unpacker = &mockUnpacker{
1373+
returnPackageMetadata: packageMetadata{
1374+
manifest: &v1.PackageManifest{},
1375+
hash: "hash",
1376+
},
1377+
returnUnpackError: testError,
1378+
}
1379+
},
13271380
},
13281381
"should add disk space error to the error chain if downloadArtifact fails with disk space error": {
13291382
isDiskSpaceErrorResult: true,
13301383
expectedError: upgradeErrors.ErrInsufficientDiskSpace,
1384+
upgraderMocker: func(upgrader *Upgrader) {
1385+
upgrader.artifactDownloader = &mockArtifactDownloader{
1386+
returnError: upgradeErrors.ErrInsufficientDiskSpace,
1387+
}
1388+
},
13311389
},
13321390
}
13331391

13341392
mockAgentInfo := info.NewAgent(t)
13351393
mockAgentInfo.On("Version").Return("9.0.0")
13361394

1337-
upgrader, err := NewUpgrader(log, &artifact.Config{}, mockAgentInfo)
1338-
require.NoError(t, err)
1339-
1340-
upgrader.artifactDownloader = &mockArtifactDownloader{
1341-
returnError: testError,
1342-
}
1343-
13441395
for name, tc := range testCases {
13451396
t.Run(name, func(t *testing.T) {
1397+
upgrader, err := NewUpgrader(log, &artifact.Config{}, mockAgentInfo)
1398+
require.NoError(t, err)
1399+
1400+
tc.upgraderMocker(upgrader)
1401+
13461402
upgrader.isDiskSpaceErrorFunc = func(err error) bool {
13471403
return tc.isDiskSpaceErrorResult
13481404
}
@@ -1362,7 +1418,6 @@ func (m *mockSender) Send(ctx context.Context, method, path string, params url.V
13621418
func (m *mockSender) URI() string {
13631419
return "mockURI"
13641420
}
1365-
13661421
func TestSetClient(t *testing.T) {
13671422
log, _ := loggertest.New("test")
13681423
upgrader := &Upgrader{

0 commit comments

Comments
 (0)