diff --git a/app/src/androidTest/java/org/tasks/data/GoogleTaskDaoTests.kt b/app/src/androidTest/java/org/tasks/data/GoogleTaskDaoTests.kt index 851afb6ae..c9e035260 100644 --- a/app/src/androidTest/java/org/tasks/data/GoogleTaskDaoTests.kt +++ b/app/src/androidTest/java/org/tasks/data/GoogleTaskDaoTests.kt @@ -183,6 +183,21 @@ class GoogleTaskDaoTests : InjectingTestCase() { assertEquals("abcd", googleTaskDao.getByTaskId(1)!!.remoteParent) } + @Test + fun ignoreSelfParent() = runBlocking { + insert( + newCaldavTask( + with(TASK, 1), + with(REMOTE_ID, "123"), + with(REMOTE_PARENT, "123") + ) + ) + + caldavDao.updateParents() + + assertEquals(0, taskDao.fetch(1)!!.parent) + } + @Test fun updateParents() = runBlocking { insert(newCaldavTask(with(TASK, 1), with(REMOTE_ID, "123"))) diff --git a/data/src/commonMain/kotlin/org/tasks/data/dao/CaldavDao.kt b/data/src/commonMain/kotlin/org/tasks/data/dao/CaldavDao.kt index f034ce68a..1548fdc91 100644 --- a/data/src/commonMain/kotlin/org/tasks/data/dao/CaldavDao.kt +++ b/data/src/commonMain/kotlin/org/tasks/data/dao/CaldavDao.kt @@ -296,7 +296,7 @@ GROUP BY caldav_lists.cdl_uuid ) UPDATE tasks SET parent = IFNULL( - (SELECT parent_id FROM parent_map WHERE task_id = tasks._id), + (SELECT parent_id FROM parent_map WHERE task_id = tasks._id AND tasks._id != parent_id), 0 ) WHERE _id IN (