Skip to content

Commit

Permalink
fix unit tests
Browse files Browse the repository at this point in the history
Signed-off-by: razzle <harry@razzle.cloud>
  • Loading branch information
Noxsios committed Mar 13, 2024
1 parent f8fdd57 commit 89e5486
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 14 deletions.
3 changes: 2 additions & 1 deletion src/pkg/packager/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"fmt"
"os"
"path/filepath"
"runtime"
"strconv"
"strings"
"sync"
Expand Down Expand Up @@ -46,7 +47,7 @@ func (p *Packager) Deploy() (err error) {

filter := filters.Combine(
filters.ForDeploy(p.cfg.PkgOpts.OptionalComponents, !config.CommonOptions.Confirm),
filters.ByLocalOS(),
filters.ByLocalOS(runtime.GOOS),
)

p.cfg.Pkg, p.warnings, err = p.source.LoadPackage(p.layout, filter, true)
Expand Down
3 changes: 2 additions & 1 deletion src/pkg/packager/dev.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ package packager
import (
"fmt"
"os"
"runtime"

"github.com/defenseunicorns/zarf/src/config"
"github.com/defenseunicorns/zarf/src/internal/packager/validate"
Expand Down Expand Up @@ -45,7 +46,7 @@ func (p *Packager) DevDeploy() error {
}

filter := filters.Combine(
filters.ByLocalOS(),
filters.ByLocalOS(runtime.GOOS),
filters.ForDeploy(p.cfg.PkgOpts.OptionalComponents, false),
)
p.cfg.Pkg.Components, err = filter.Apply(p.cfg.Pkg)
Expand Down
18 changes: 12 additions & 6 deletions src/pkg/packager/filters/os.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,31 @@
package filters

import (
"runtime"
"errors"

"github.com/defenseunicorns/zarf/src/types"
)

func ByLocalOS() ComponentFilterStrategy {
return &localOSFilter{}
func ByLocalOS(localOS string) ComponentFilterStrategy {
return &localOSFilter{localOS}
}

// localOSFilter filters components based on local (runtime) OS.
type localOSFilter struct{}
type localOSFilter struct {
localOS string
}

var ErrLocalOSRequired = errors.New("localOS is required")

// Apply applies the filter.
func (f *localOSFilter) Apply(pkg types.ZarfPackage) ([]types.ZarfComponent, error) {
localOS := runtime.GOOS
if f.localOS == "" {
return nil, ErrLocalOSRequired
}

filtered := []types.ZarfComponent{}
for _, component := range pkg.Components {
if component.Only.LocalOS == "" || component.Only.LocalOS == localOS {
if component.Only.LocalOS == "" || component.Only.LocalOS == f.localOS {
filtered = append(filtered, component)
}
}
Expand Down
11 changes: 7 additions & 4 deletions src/pkg/packager/filters/os_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/stretchr/testify/require"
)

func TestArchAndOSFilter(t *testing.T) {
func TestLocalOSFilter(t *testing.T) {

pkg := types.ZarfPackage{}
for _, os := range validate.SupportedOS() {
Expand All @@ -23,10 +23,13 @@ func TestArchAndOSFilter(t *testing.T) {
}

for _, os := range validate.SupportedOS() {
filter := ByLocalOS()
filter := ByLocalOS(os)
result, err := filter.Apply(pkg)
require.NoError(t, err)
require.Len(t, result, 2)
if os == "" {
require.ErrorIs(t, err, ErrLocalOSRequired)
} else {
require.NoError(t, err)
}
for _, component := range result {
if component.Only.LocalOS != "" {
require.Equal(t, os, component.Only.LocalOS)
Expand Down
3 changes: 2 additions & 1 deletion src/pkg/packager/mirror.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ package packager

import (
"fmt"
"runtime"
"strings"

"github.com/defenseunicorns/zarf/src/config"
Expand All @@ -21,7 +22,7 @@ func (p *Packager) Mirror() (err error) {

filter := filters.Combine(
filters.BySelectState(p.cfg.PkgOpts.OptionalComponents),
filters.ByLocalOS(),
filters.ByLocalOS(runtime.GOOS),
)

p.cfg.Pkg, p.warnings, err = p.source.LoadPackage(p.layout, filter, true)
Expand Down
3 changes: 2 additions & 1 deletion src/pkg/packager/remove.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"encoding/json"
"errors"
"fmt"
"runtime"

"slices"

Expand Down Expand Up @@ -49,7 +50,7 @@ func (p *Packager) Remove() (err error) {

// If components were provided; just remove the things we were asked to remove
filter := filters.Combine(
filters.ByLocalOS(),
filters.ByLocalOS(runtime.GOOS),
filters.BySelectState(p.cfg.PkgOpts.OptionalComponents),
)
included, err := filter.Apply(p.cfg.Pkg)
Expand Down

0 comments on commit 89e5486

Please sign in to comment.