mirror of
https://github.com/fleetdm/fleet
synced 2026-05-01 18:37:37 +00:00
For #32788. ## Testing - [X] Added/updated automated tests - [X] 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 - [x] Verified that fleetd runs on macOS, Linux and Windows - [X] 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 - Enhanced Linux setup experience: persists status on disk, resumes automatically, and completes when software/scripts finish. - Opens the “My Device” page only when desktop is enabled, using a user-aware launcher on Linux. - Linux setup status now focuses on software progress for faster, clearer feedback. - Bug Fixes - Corrected auth/MDM checks: macOS requires Apple MDM; Linux no longer blocked by MDM configuration on shared endpoints. - Improved reliability and logging around software installation and temporary directory cleanup. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package setupexperience
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/fleetdm/fleet/v4/server/ptr"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSetupExperienceStatusFile(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
|
|
// Test first execution of reading the setup experience file.
|
|
s, err := ReadSetupExperienceStatusFile(tmpDir)
|
|
require.NoError(t, err)
|
|
require.Nil(t, s)
|
|
|
|
err = WriteSetupExperienceStatusFile(tmpDir, &SetupExperienceInfo{
|
|
TimeInitiated: time.Now(),
|
|
Enabled: true,
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
s, err = ReadSetupExperienceStatusFile(tmpDir)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, s)
|
|
require.NotZero(t, s.TimeInitiated)
|
|
timeInitiated := s.TimeInitiated
|
|
require.True(t, s.Enabled)
|
|
require.Nil(t, s.TimeFinished)
|
|
|
|
s.TimeFinished = ptr.Time(time.Now())
|
|
err = WriteSetupExperienceStatusFile(tmpDir, s)
|
|
require.NoError(t, err)
|
|
|
|
s, err = ReadSetupExperienceStatusFile(tmpDir)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, s)
|
|
require.Equal(t, timeInitiated, s.TimeInitiated)
|
|
require.True(t, s.Enabled)
|
|
require.NotNil(t, s.TimeFinished)
|
|
require.NotZero(t, *s.TimeFinished)
|
|
}
|