Turned the analytics tracker off by default in the template.

This commit is contained in:
2026-08-13 02:57:47 +02:00
parent b68eac4375
commit 2206d71997
13 changed files with 178 additions and 71 deletions
@@ -12,36 +12,47 @@ struct ConfigReaderPropertiesTests {
// MARK: Functional tests
@Test
func `analytics to default to the production tracker`() throws {
let analytics = try #require(reader().analytics)
#expect(analytics.scriptURL == .Analytics.scriptURL)
#expect(analytics.websiteID == .Analytics.websiteID)
#expect(analytics.domains == .Analytics.domains)
#expect(analytics.excludeHash)
#expect(analytics.doNotTrack)
#expect(analytics.performance)
#expect(analytics.recorder)
func `analytics to be omitted by default`() {
// The template ships no website identifier, so an unconfigured deployment embeds no tracker at all.
#expect(.Analytics.websiteID == "")
#expect(reader().analytics == nil)
}
@Test
func `analytics to switch recorder mode off when configured`() throws {
func `analytics to be enabled by setting the website id alone`() throws {
let analytics = try #require(reader(values: [
.Analytics.recorder: false
.Analytics.websiteID: "0000-website-id"
]).analytics)
#expect(analytics.scriptURL == .Analytics.scriptURL)
#expect(analytics.websiteID == "0000-website-id")
#expect(analytics.domains.isEmpty)
#expect(analytics.excludeHash)
#expect(analytics.doNotTrack)
#expect(analytics.performance)
#expect(!analytics.recorder)
}
@Test
func `analytics to switch recorder mode on when configured`() throws {
// Session recording is the most invasive thing the tracker does, so it is opted into rather than out of.
let analytics = try #require(reader(values: [
.Analytics.websiteID: "0000-website-id",
.Analytics.recorder: true
]).analytics)
#expect(analytics.recorder)
}
@Test
func `analytics to override the website id and domains when configured`() throws {
let analytics = try #require(reader(values: [
.Analytics.websiteID: "custom-website-id",
.Analytics.domains: "staging.loud.amsterdam"
.Analytics.domains: "staging.example.com"
]).analytics)
#expect(analytics.websiteID == "custom-website-id")
#expect(analytics.domains == "staging.loud.amsterdam")
#expect(analytics.domains == "staging.example.com")
#expect(analytics.scriptURL == .Analytics.scriptURL)
}