mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 21:47:20 +00:00
<!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #37241 Test changes only. Updated `archtest` to be more ergonomic. See README <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Enhanced archtest package with new API methods for more granular dependency filtering: `IgnoreRecursively()`, `IgnoreDeps()`, `WithTests()`, and `WithTestsRecursively()`. * Added `Check()` method to finalize dependency verification. * **Documentation** * Added comprehensive README for archtest package with usage examples and fluent API method reference. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
48 lines
2 KiB
Go
48 lines
2 KiB
Go
package android_test
|
|
|
|
import (
|
|
"regexp"
|
|
"testing"
|
|
|
|
"github.com/fleetdm/fleet/v4/server/archtest"
|
|
)
|
|
|
|
// TestAllAndroidPackageDependencies checks that android packages are not dependent on other Fleet packages
|
|
// to maintain decoupling and modularity.
|
|
// If coupling is necessary, it should be done in the main server/fleet, server/service, or other package.
|
|
func TestAllAndroidPackageDependencies(t *testing.T) {
|
|
t.Parallel()
|
|
archtest.NewPackageTest(t, "github.com/fleetdm/fleet/v4/server/mdm/android...").
|
|
OnlyInclude(regexp.MustCompile(`^github\.com/fleetdm/`)).
|
|
ShouldNotDependOn(
|
|
"github.com/fleetdm/fleet/v4/server/service...",
|
|
"github.com/fleetdm/fleet/v4/server/datastore/mysql...",
|
|
).
|
|
IgnoreRecursively(
|
|
"github.com/fleetdm/fleet/v4/server/mdm/android/tests",
|
|
).
|
|
IgnoreDeps(
|
|
// Android packages
|
|
"github.com/fleetdm/fleet/v4/server/mdm/android...",
|
|
// Other/infra packages
|
|
"github.com/fleetdm/fleet/v4/server/datastore/mysql/common_mysql",
|
|
"github.com/fleetdm/fleet/v4/server/service/externalsvc", // dependency on Jira and Zendesk
|
|
"github.com/fleetdm/fleet/v4/server/service/middleware/auth",
|
|
"github.com/fleetdm/fleet/v4/server/service/middleware/authzcheck",
|
|
"github.com/fleetdm/fleet/v4/server/service/middleware/endpoint_utils",
|
|
"github.com/fleetdm/fleet/v4/server/service/middleware/log",
|
|
"github.com/fleetdm/fleet/v4/server/service/middleware/ratelimit",
|
|
"github.com/fleetdm/fleet/v4/server/service/modules/activities",
|
|
).
|
|
Check()
|
|
}
|
|
|
|
// TestAndroidPackageDependencies checks that android package is NOT dependent on ANY other Fleet packages
|
|
// to maintain decoupling and modularity. This package should only contain basic structs and interfaces.
|
|
// If coupling is necessary, it should be done in the main server/fleet or another package.
|
|
func TestAndroidPackageDependencies(t *testing.T) {
|
|
t.Parallel()
|
|
archtest.NewPackageTest(t, "github.com/fleetdm/fleet/v4/server/mdm/android").
|
|
OnlyInclude(regexp.MustCompile(`^github\.com/fleetdm/`)).
|
|
ShouldNotDependOn("github.com/fleetdm/fleet/v4/...")
|
|
}
|