Skip to content

Commit

Permalink
Add tests for remove copies from components to enable refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
phillebaba committed May 3, 2024
1 parent c8a70ef commit 19abff5
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions src/pkg/packager/creator/differential_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: 2021-Present The Zarf Authors

package creator

import (
"testing"

"github.com/defenseunicorns/zarf/src/types"
"github.com/stretchr/testify/require"
)

func TestRemoveCopiesFromComponents(t *testing.T) {
components := []types.ZarfComponent{
{
Images: []string{
"example.com/include-image-tag:latest",
"example.com/image-with-tag:v1",
"example.com/diff-image-with-tag:v1",
"example.com/image-with-digest@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"example.com/diff-image-with-digest@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"example.com/image-with-tag-and-digest:v1@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"example.com/diff-image-with-tag-and-digest:v1@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
},
Repos: []string{
"https://example.com/no-ref.git",
"https://example.com/branch.git@refs/heads/main",
"https://example.com/tag.git@v1",
"https://example.com/diff-tag.git@v1",
"https://example.com/commit.git@524980951ff16e19dc25232e9aea8fd693989ba6",
"https://example.com/diff-commit.git@524980951ff16e19dc25232e9aea8fd693989ba6",
},
},
}
loadedDiffData := types.DifferentialData{
DifferentialImages: map[string]bool{
"example.com/include-image-tag:latest": true,
"example.com/diff-image-with-tag:v1": true,
"example.com/diff-image-with-digest@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855": true,
"example.com/diff-image-with-tag-and-digest:v1@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855": true,
},
DifferentialRepos: map[string]bool{
"https://example.com/no-ref.git": true,
"https://example.com/branch.git@refs/heads/main": true,
"https://example.com/diff-tag.git@v1": true,
"https://example.com/diff-commit.git@524980951ff16e19dc25232e9aea8fd693989ba6": true,
},
}
diffComponents, err := removeCopiesFromComponents(components, &loadedDiffData)
require.NoError(t, err)

expectedImages := []string{
"example.com/include-image-tag:latest",
"example.com/image-with-tag:v1",
"example.com/image-with-digest@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"example.com/image-with-tag-and-digest:v1@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
}
require.ElementsMatch(t, expectedImages, diffComponents[0].Images)
expectedRepos := []string{
"https://example.com/no-ref.git",
"https://example.com/branch.git@refs/heads/main",
"https://example.com/tag.git@v1",
"https://example.com/commit.git@524980951ff16e19dc25232e9aea8fd693989ba6",
}
require.ElementsMatch(t, expectedRepos, diffComponents[0].Repos)
}

0 comments on commit 19abff5

Please sign in to comment.