summaryrefslogtreecommitdiff
path: root/android/app/src/test/java/org/terst
diff options
context:
space:
mode:
Diffstat (limited to 'android/app/src/test/java/org/terst')
-rw-r--r--android/app/src/test/java/org/terst/doot/widget/WidgetRepositoryTest.kt44
1 files changed, 44 insertions, 0 deletions
diff --git a/android/app/src/test/java/org/terst/doot/widget/WidgetRepositoryTest.kt b/android/app/src/test/java/org/terst/doot/widget/WidgetRepositoryTest.kt
index 31e6642..8712124 100644
--- a/android/app/src/test/java/org/terst/doot/widget/WidgetRepositoryTest.kt
+++ b/android/app/src/test/java/org/terst/doot/widget/WidgetRepositoryTest.kt
@@ -105,4 +105,48 @@ class WidgetRepositoryTest {
assertTrue("expected id=rec-1 in URL, got $url", url.contains("id=rec-1"))
assertTrue("expected source=doot in URL, got $url", url.contains("source=doot"))
}
+
+ @Test
+ fun `fetchProjects returns success with valid JSON`() = runTest {
+ val json = """[{"id":"proj-1","name":"Sailing prep","color":"#3B82F6","created_at":"2026-07-15T00:00:00-10:00"}]"""
+ every { mockClient.newCall(any()) } returns mockCall
+ every { mockCall.execute() } returns responseOf(200, json)
+
+ val repo = WidgetRepository(mockClient, "https://doot.example.com", "token")
+ val result = repo.fetchProjects()
+
+ assertTrue(result.isSuccess)
+ val projects = result.getOrThrow()
+ assertEquals(1, projects.size)
+ assertEquals("Sailing prep", projects[0].name)
+ assertEquals("#3B82F6", projects[0].color)
+ }
+
+ @Test
+ fun `createProject returns success with valid JSON`() = runTest {
+ val json = """{"id":"proj-1","name":"Sailing prep","color":"#3B82F6","created_at":"2026-07-15T00:00:00-10:00"}"""
+ every { mockClient.newCall(any()) } returns mockCall
+ every { mockCall.execute() } returns responseOf(200, json)
+
+ val repo = WidgetRepository(mockClient, "https://doot.example.com", "token")
+ val result = repo.createProject("Sailing prep", "#3B82F6")
+
+ assertTrue(result.isSuccess)
+ assertEquals("Sailing prep", result.getOrThrow().name)
+ }
+
+ @Test
+ fun `fetchLabelColors returns success with valid JSON`() = runTest {
+ val json = """[{"name":"chore","color":"#F59E0B"}]"""
+ every { mockClient.newCall(any()) } returns mockCall
+ every { mockCall.execute() } returns responseOf(200, json)
+
+ val repo = WidgetRepository(mockClient, "https://doot.example.com", "token")
+ val result = repo.fetchLabelColors()
+
+ assertTrue(result.isSuccess)
+ val colors = result.getOrThrow()
+ assertEquals(1, colors.size)
+ assertEquals("chore", colors[0].name)
+ }
}