feat: add countries, devices, browsers, OS dashboard sections
Add 4 new dimension queries (concurrent with existing 4, total 8) to the dashboard: countries, devices, browsers, and operating systems. All reuse the existing DimensionSection component with proportional progress bars. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d9e4b18a52
commit
54a5b38fc6
8 changed files with 184 additions and 2 deletions
|
|
@ -102,6 +102,24 @@ class StatsRepositoryTest {
|
|||
)
|
||||
)
|
||||
|
||||
// Mock countries, devices, browsers, OS responses
|
||||
coEvery { api.query(any(), any(), match { "visit:country_name" in it.dimensions }) } returns
|
||||
QueryResponse(results = listOf(
|
||||
QueryResult(dimensions = listOf(JsonPrimitive("Germany")), metrics = listOf(JsonPrimitive(50)))
|
||||
))
|
||||
coEvery { api.query(any(), any(), match { "visit:device" in it.dimensions }) } returns
|
||||
QueryResponse(results = listOf(
|
||||
QueryResult(dimensions = listOf(JsonPrimitive("Desktop")), metrics = listOf(JsonPrimitive(80)))
|
||||
))
|
||||
coEvery { api.query(any(), any(), match { "visit:browser" in it.dimensions }) } returns
|
||||
QueryResponse(results = listOf(
|
||||
QueryResult(dimensions = listOf(JsonPrimitive("Firefox")), metrics = listOf(JsonPrimitive(60)))
|
||||
))
|
||||
coEvery { api.query(any(), any(), match { "visit:os" in it.dimensions }) } returns
|
||||
QueryResponse(results = listOf(
|
||||
QueryResult(dimensions = listOf(JsonPrimitive("Linux")), metrics = listOf(JsonPrimitive(40)))
|
||||
))
|
||||
|
||||
val result = repository.getDashboardData(
|
||||
instance = testInstance,
|
||||
apiKey = "test-key",
|
||||
|
|
@ -118,6 +136,10 @@ class StatsRepositoryTest {
|
|||
assertEquals("Google", result.topSources[0].name)
|
||||
assertEquals(1, result.topPages.size)
|
||||
assertEquals("/blog", result.topPages[0].name)
|
||||
assertEquals("Germany", result.countries[0].name)
|
||||
assertEquals("Desktop", result.devices[0].name)
|
||||
assertEquals("Firefox", result.browsers[0].name)
|
||||
assertEquals("Linux", result.operatingSystems[0].name)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue