mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 13:37:30 +00:00
**Related issue:** Resolves #41379 # Checklist for submitter If some of the following don't apply, delete the relevant line. - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. ## Testing - [x] Added/updated automated tests - [ ] Where appropriate, [automated tests simulate multiple hosts and test for host isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing) (updates to one hosts's records do not affect another) - [ ] QA'd all new/changed functionality manually ## fleetd/orbit/Fleet Desktop - [x] Verified compatibility with the latest released version of Fleet (see [Must rule](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/workflows/fleetd-development-and-release-strategy.md)) - [x] If the change applies to only one platform, confirmed that `runtime.GOOS` is used as needed to isolate changes - [ ] Verified that fleetd runs on macOS, Linux and Windows - [ ] Verified auto-update works from the released version of component to the new version (see [tools/tuf/test](../tools/tuf/test/README.md)) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added EUA token support to Orbit enrollment workflow * Introduced `--eua-token` CLI flag for Windows MDM enrollment * Windows MSI packages now support EUA_TOKEN property (Orbit v1.55.0+) * **Tests** * Added tests for EUA token handling in enrollment and Windows packaging * **Documentation** * Added changelog entry documenting EUA token inclusion in enrollment requests <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package packaging
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestWindowsWixTemplateEUAToken(t *testing.T) {
|
|
baseOpt := Options{
|
|
FleetURL: "https://fleet.example.com",
|
|
EnrollSecret: "secret",
|
|
OrbitChannel: "stable",
|
|
OsquerydChannel: "stable",
|
|
DesktopChannel: "stable",
|
|
NativePlatform: "windows",
|
|
Architecture: ArchAmd64,
|
|
}
|
|
|
|
t.Run("EUA_TOKEN property and flag included when enabled", func(t *testing.T) {
|
|
opt := baseOpt
|
|
opt.EnableEUATokenProperty = true
|
|
|
|
var buf bytes.Buffer
|
|
err := windowsWixTemplate.Execute(&buf, opt)
|
|
require.NoError(t, err)
|
|
|
|
output := buf.String()
|
|
assert.Contains(t, output, `<Property Id="EUA_TOKEN" Value="dummy"/>`)
|
|
|
|
var argsLine string
|
|
for line := range strings.SplitSeq(output, "\n") {
|
|
if strings.Contains(line, "Arguments=") && strings.Contains(line, "--fleet-url") {
|
|
argsLine = line
|
|
break
|
|
}
|
|
}
|
|
require.NotEmpty(t, argsLine, "ServiceInstall Arguments line not found in template output")
|
|
assert.Contains(t, argsLine, `--eua-token="[EUA_TOKEN]"`,
|
|
"eua-token flag should be in ServiceInstall Arguments")
|
|
})
|
|
|
|
t.Run("EUA_TOKEN property and flag absent when disabled", func(t *testing.T) {
|
|
opt := baseOpt
|
|
opt.EnableEUATokenProperty = false
|
|
|
|
var buf bytes.Buffer
|
|
err := windowsWixTemplate.Execute(&buf, opt)
|
|
require.NoError(t, err)
|
|
|
|
output := buf.String()
|
|
assert.NotContains(t, output, `EUA_TOKEN`)
|
|
assert.NotContains(t, output, `--eua-token`)
|
|
})
|
|
}
|