diff --git a/pkg/spec/gitops_test.go b/pkg/spec/gitops_test.go index 65a73ab7c253..a6772a3271aa 100644 --- a/pkg/spec/gitops_test.go +++ b/pkg/spec/gitops_test.go @@ -242,7 +242,7 @@ func TestValidGitOpsYaml(t *testing.T) { // Check policies expectedPoliciesCount := 5 if test.isTeam { - expectedPoliciesCount = 6 + expectedPoliciesCount = 8 } require.Len(t, gitops.Policies, expectedPoliciesCount) assert.Equal(t, "😊 Failing policy", gitops.Policies[0].Name) @@ -255,6 +255,14 @@ func TestValidGitOpsYaml(t *testing.T) { assert.Equal(t, "Microsoft Teams on macOS installed and up to date", gitops.Policies[5].Name) assert.NotNil(t, gitops.Policies[5].InstallSoftware) assert.Equal(t, "./microsoft-teams.pkg.software.yml", gitops.Policies[5].InstallSoftware.PackagePath) + + assert.Equal(t, "Script run policy", gitops.Policies[6].Name) + assert.NotNil(t, gitops.Policies[6].RunScript) + assert.Equal(t, "./lib/collect-fleetd-logs.sh", gitops.Policies[6].RunScript.Path) + + assert.Equal(t, "🔥 Failing policy with script", gitops.Policies[7].Name) + assert.NotNil(t, gitops.Policies[7].RunScript) + assert.Equal(t, "./lib/collect-fleetd-logs.sh", gitops.Policies[7].RunScript.Path) } }, ) diff --git a/pkg/spec/testdata/lib/collect-fleetd-logs.sh b/pkg/spec/testdata/lib/collect-fleetd-logs.sh new file mode 100644 index 000000000000..17089e08d8ca --- /dev/null +++ b/pkg/spec/testdata/lib/collect-fleetd-logs.sh @@ -0,0 +1 @@ +# collect fleetd logs \ No newline at end of file diff --git a/pkg/spec/testdata/script-policy.yml b/pkg/spec/testdata/script-policy.yml new file mode 100644 index 000000000000..21e65b955f65 --- /dev/null +++ b/pkg/spec/testdata/script-policy.yml @@ -0,0 +1,7 @@ +- name: 🔥 Failing policy with script + platform: $LINUX_OS + description: This policy should always fail. + resolution: There is no resolution for this policy. + query: SELECT 1 FROM osquery_info WHERE start_time < 0; + run_script: + path: ./lib/collect-fleetd-logs.sh \ No newline at end of file diff --git a/pkg/spec/testdata/team_config.yml b/pkg/spec/testdata/team_config.yml index bffaab95139c..2d088fd7a3d6 100644 --- a/pkg/spec/testdata/team_config.yml +++ b/pkg/spec/testdata/team_config.yml @@ -31,7 +31,8 @@ policies: description: This should run a script on failure query: SELECT * from osquery_info; run_script: - - path: ./lib/collect-fleetd-logs.sh + path: ./lib/collect-fleetd-logs.sh + - path: ./script-policy.yml software: packages: - path: ./microsoft-teams.pkg.software.yml diff --git a/pkg/spec/testdata/team_config_no_paths.yml b/pkg/spec/testdata/team_config_no_paths.yml index c0c0742d72fa..e660d5eccce7 100644 --- a/pkg/spec/testdata/team_config_no_paths.yml +++ b/pkg/spec/testdata/team_config_no_paths.yml @@ -120,6 +120,19 @@ policies: query: SELECT 1 FROM apps WHERE name = 'Microsoft Teams.app' AND version_compare(bundle_short_version, '24193.1707.3028.4282') >= 0; install_software: package_path: ./microsoft-teams.pkg.software.yml + - name: Script run policy + platform: linux + description: This should run a script on failure + query: SELECT * from osquery_info; + run_script: + path: ./lib/collect-fleetd-logs.sh + - name: 🔥 Failing policy with script + platform: linux + description: This policy should always fail. + resolution: There is no resolution for this policy. + query: SELECT 1 FROM osquery_info WHERE start_time < 0; + run_script: + path: ./lib/collect-fleetd-logs.sh software: packages: - path: ./microsoft-teams.pkg.software.yml diff --git a/pkg/spec/testdata/top.policies2.yml b/pkg/spec/testdata/top.policies2.yml index 3c0f826dd714..81f128dfaf47 100644 --- a/pkg/spec/testdata/top.policies2.yml +++ b/pkg/spec/testdata/top.policies2.yml @@ -2,6 +2,4 @@ platform: $LINUX_OS description: This policy should always fail. resolution: There is no resolution for this policy. - query: SELECT 1 FROM osquery_info WHERE start_time < 0; - run_script: - - path: ./lib/collect-fleetd-logs.sh \ No newline at end of file + query: SELECT 1 FROM osquery_info WHERE start_time < 0; \ No newline at end of file