/
githubmirror
/
trivy
Обзор
Документация
Войти
/
githubmirror
/
trivy
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
pkg/flag/package_flags_test.go
85 строк
2 KB
Teppei Fukuda
refactor(flag): improve flag system architecture and extensibility (#8718)
11 апр 2025, 11:47
Не верифицирован
11 апр 2025, 11:47
4a38d01
Код
Авторство
О чём код?
package flag_test import ( "testing" "github.com/spf13/viper" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ftypes "github.com/aquasecurity/trivy/pkg/fanal/types" "github.com/aquasecurity/trivy/pkg/flag" "github.com/aquasecurity/trivy/pkg/types" ) func TestPackageFlagGroup_ToOptions(t *testing.T) { type fields struct { pkgTypes string pkgRelationships string } tests := []struct { name string fields fields want flag.PackageOptions wantLogs []string }{ { name: "happy default (without flags)", fields: fields{}, want: flag.PackageOptions{}, }, { name: "happy path for OS packages", fields: fields{ pkgTypes: "os", }, want: flag.PackageOptions{ PkgTypes: []string{ types.PkgTypeOS, }, }, }, { name: "happy path for library packages", fields: fields{ pkgTypes: "library", }, want: flag.PackageOptions{ PkgTypes: []string{ types.PkgTypeLibrary, }, }, }, { name: "root and indirect relationships", fields: fields{ pkgRelationships: "root,indirect", }, want: flag.PackageOptions{ PkgRelationships: []ftypes.Relationship{ ftypes.RelationshipRoot, ftypes.RelationshipIndirect, }, }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { t.Cleanup(viper.Reset) setValue(flag.PkgTypesFlag.ConfigName, tt.fields.pkgTypes) setValue(flag.PkgRelationshipsFlag.ConfigName, tt.fields.pkgRelationships) // Assert options f := &flag.PackageFlagGroup{ PkgTypes: flag.PkgTypesFlag.Clone(), PkgRelationships: flag.PkgRelationshipsFlag.Clone(), } flags := flag.Flags{f} got, err := flags.ToOptions(nil) require.NoError(t, err) assert.EqualExportedValues(t, tt.want, got.PackageOptions) }) } }