From a0dde0fae312328e1ae54c041d13df4ba3fae4ec Mon Sep 17 00:00:00 2001 From: Yuchan Lee Date: Tue, 4 Feb 2025 21:25:37 +0900 Subject: [PATCH] Fix duplicate collection items in collection tree (#77) --- src/client/collection.ts | 7 +- .../recording.har | 273 +++++++++--------- tests/client/collection.test.ts | 27 +- 3 files changed, 152 insertions(+), 155 deletions(-) diff --git a/src/client/collection.ts b/src/client/collection.ts index c26b9b5..fcab016 100644 --- a/src/client/collection.ts +++ b/src/client/collection.ts @@ -52,7 +52,12 @@ export class CollectionApi extends _CollectionApi { a.data.title.localeCompare(b.data.title) || a.data._id - b.data._id, ); - const rootNode = makeTree(null, source); + // ? Deduplicate items; can't explain the detail because it's been a while since I wrote this. + const sourceDedupe = source.filter( + (obj1, idx, arr) => arr.findIndex((obj2) => obj2.id === obj1.id) === idx, + ); + + const rootNode = makeTree(null, sourceDedupe); return rootNode; } } diff --git a/tests/__recordings__/collection-getCollectionTree-build-tree-from-groups-and-collections_1641142175/recording.har b/tests/__recordings__/collection-getCollectionTree-build-tree-from-groups-and-collections_1641142175/recording.har index d6b508d..2739a8f 100644 --- a/tests/__recordings__/collection-getCollectionTree-build-tree-from-groups-and-collections_1641142175/recording.har +++ b/tests/__recordings__/collection-getCollectionTree-build-tree-from-groups-and-collections_1641142175/recording.har @@ -43,18 +43,18 @@ "url": "https://api.raindrop.io/rest/v1/collections" }, "response": { - "bodySize": 420, + "bodySize": 444, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 420, - "text": "[\"IQwIACBm6qrqd65UiNR9998iBJScZ5wDWwe07sQP5v8hCOzUwixpbQcNIiiiIIiySAMPg5pbIphsTvZg9T2LCzBZFVjdTghAoz+Bvy74MwM4b+qyydKMoEatgDGJ3ptpac20VP+wOjMehMFo32zmDAOEnRcHvmDhZATHOw/CwgzgNC6rpIlvhE3rZKXg1c5awj/ol3vw2FovhL2RAxjWeAUBWjSAE4Ll+wj89UPwa6fgmEBOKoMMgshAPV67RxnBojDzKcKqnQWM2ZyMbZokLkGQuTUWDNwItvV6J26HkcZpHiRJkCbPScpFzkUeFmn5iTw1MiyEpIkvsK3Xl83QqmzovN1NdbZBjzo+MKugH/yoQBt8wbh2shjwVYNzgluvtYr54NppajsrfZYb4epJwup2cvu5GQM=\"]" + "size": 444, + "text": "[\"MQAVACAQls6qfiel4rm7sLrkiw7BIIcM+M/+56mHKRiREP48z3kAY7HV6ZOgYj2fVithwYu4dG7HZpHC2EDJ4m38QpM1QYduNIHQ6HH06Ze3Y4Yu/Ma5VVgLw3EoDGWLkDXUn98Mx7pCQRh769BfJp3l6LivR5gcMzS45cpv3L/QxJ1VA1qNRSH8d353iuZx0ZvwcbRPlOLYDwjkRC3qhNbuPvr0IvR1ZwdDUpNZlrhqlO7W3aXlaPIU+TShiktDKY/fx2Kz8W6JYGV8LFD4F4q4H7bpdtYHFxZT56dhfe3nOvPqfbQJ/pE4wyxzZOECRdwPN00WDzan+mLco8QILwSMo7/kdZc72Lqm6Fzo6no4Kj/r4v0+TgormvkX7pGQKV87YRZ+1A5yIdps4FhHoCSPTsAtftQF5ObR0mHVESjJs1Lol38DAw==\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:12 GMT" + "value": "Tue, 28 Jan 2025 14:32:25 GMT" }, { "name": "content-type", @@ -74,7 +74,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, find_collections;dur=29.698, total;dur=39.192" + "value": "dc;desc=eu, find_collections;dur=20.178, total;dur=28.146" }, { "name": "cache-control", @@ -90,11 +90,11 @@ }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"204-doSVswHgSr2xdItWuiuaixPwy8I\"" + "value": "W/\"541-1XjPXXKTOng8nrfM2nyRmevLA/c\"" }, { "name": "cf-cache-status", @@ -106,7 +106,7 @@ }, { "name": "cf-ray", - "value": "8e60d6a71919d1e1-ICN" + "value": "9091b114cdc4aa62-ICN" }, { "name": "content-encoding", @@ -123,8 +123,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:12.565Z", - "time": 418, + "startedDateTime": "2025-01-28T14:32:24.940Z", + "time": 513, "timings": { "blocked": -1, "connect": -1, @@ -132,15 +132,15 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 418 + "wait": 513 } }, { - "_id": "afe1a606de5cf7d8571238c7e453b38f", + "_id": "70b31d119815d0252ad87e08c6f3d215", "_order": 0, "cache": {}, "request": { - "bodySize": 18, + "bodySize": 36, "cookies": [], "headers": [ { @@ -161,7 +161,7 @@ }, { "name": "content-length", - "value": "18" + "value": "36" }, { "name": "accept-encoding", @@ -178,31 +178,32 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"ids\":[49869323]}" + "text": "{\"ids\":[51900728,51900732,51900735]}" }, "queryString": [], "url": "https://api.raindrop.io/rest/v1/collections" }, "response": { - "bodySize": 45, + "bodySize": 84, "content": { + "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 45, - "text": "{\"result\":true,\"modified\":1,\"ids\":[49869323]}" + "size": 84, + "text": "[\"IfgAACDmNkr98sLHUJeq2DRYvyTCBpxY4JBBwDucDKbOwyZrEGfdQUhfCCPMvhHVpTAnzQRTvX0DAw==\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:13 GMT" + "value": "Tue, 28 Jan 2025 14:32:26 GMT" }, { "name": "content-type", "value": "application/json; charset=utf-8" }, { - "name": "content-length", - "value": "45" + "name": "transfer-encoding", + "value": "chunked" }, { "name": "connection", @@ -214,7 +215,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=143.751" + "value": "dc;desc=eu, total;dur=680.337" }, { "name": "cache-control", @@ -226,15 +227,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "117" + "value": "118" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "\"2d-pjQvkYm/4m8ouW28ZcAr6GR0bnY\"" + "value": "W/\"3f-psh496HQyJoNUetE4Y+bK+jw6HY\"" }, { "name": "cf-cache-status", @@ -246,21 +247,25 @@ }, { "name": "cf-ray", - "value": "8e60d6a94e37d1e1-ICN" + "value": "9091b1176fe1aa62-ICN" + }, + { + "name": "content-encoding", + "value": "br" }, { "name": "alt-svc", "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 452, + "headersSize": 484, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:12.997Z", - "time": 432, + "startedDateTime": "2025-01-28T14:32:25.487Z", + "time": 1010, "timings": { "blocked": -1, "connect": -1, @@ -268,7 +273,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 432 + "wait": 1010 } }, { @@ -324,13 +329,13 @@ "content": { "mimeType": "application/json; charset=utf-8", "size": 28, - "text": "{\"result\":true,\"modified\":5}" + "text": "{\"result\":true,\"modified\":0}" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:13 GMT" + "value": "Tue, 28 Jan 2025 14:32:26 GMT" }, { "name": "content-type", @@ -350,7 +355,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, remove_raindrops;dur=48.813, total;dur=57.051" + "value": "dc;desc=eu, remove_raindrops;dur=56.090, total;dur=64.484" }, { "name": "cache-control", @@ -362,15 +367,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "115" + "value": "117" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "\"1c-kGIHqfYljNk5MEzzDbFLoO8ozxw\"" + "value": "\"1c-4qWVy38W8rFatuqrufbFDsPgG3E\"" }, { "name": "cf-cache-status", @@ -382,7 +387,7 @@ }, { "name": "cf-ray", - "value": "8e60d6abfdafd1e1-ICN" + "value": "9091b11dde31aa62-ICN" }, { "name": "alt-svc", @@ -395,8 +400,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:13.434Z", - "time": 344, + "startedDateTime": "2025-01-28T14:32:26.516Z", + "time": 398, "timings": { "blocked": -1, "connect": -1, @@ -404,7 +409,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 344 + "wait": 398 } }, { @@ -461,13 +466,13 @@ "encoding": "base64", "mimeType": "application/json; charset=utf-8", "size": 352, - "text": "[\"IbgGACC+qfOn/V1HhUhbh7WfMKCiA7VVoKcHbiUWYG1xgScRJNS8fYdvNzv49UQMxy0yf1XhBpqsd2C1ByFsVHrwDbpRI2DMQejw8+eTbsYBDBAOTiz4hpmVJVj/ORBmmw4ch3kRVeGDMNVWBgUPB2MI781vt+BlbZwQjhs5gWE2TkHgIsrgkIDkbsFfPwQ3WjsSIqVOujoBF11Gu5BlSkcwtdN5K+txGKdeFHlx9BzFnOUcJX6VJp8IkJDO8QFTO32Zulol4NnfpgOnVZlXSVkRnDmswKhB+Ps79oQHACrwDcvRltzLUQw4Jdhx1NHYztarVd0Y6ZcehDURzWoP8ngYAw==\"]" + "text": "[\"IbgGACC+qfOn/V1HhUhbh7WfMKCiA7VVoKcHbiUWYG1xgScRJNS8fYdvNzv49UQMxy0yf1XhBpqsd2C1ByFsVHrwDbpRI2DMQejw8+eTbsYBDBAOTiz4hpmVJVj/ORBmmw4ch3kRVeGDMNVWBgUPB2MI781vt+BlbZwQjhs5gWE2TkHgIsrgkIDkbsFfPwQ3WjsSIqVOujoBF11Gu5BlSkcwtdN5K+txGGdeGHlx+RylnMQcF34URZ8IkJDO8QFTO32Zulol4NnfpgNnURWGRVoRnDmswKhB+Ps79oQHACrwDcvRltzLUQw4Jdhx1NHYztarVd0Y6ZcehDURzWoP8ngYAw==\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:14 GMT" + "value": "Tue, 28 Jan 2025 14:32:27 GMT" }, { "name": "content-type", @@ -487,7 +492,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=110.280" + "value": "dc;desc=eu, total;dur=184.052" }, { "name": "cache-control", @@ -499,15 +504,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "110" + "value": "116" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"1af-lo+WbLaCZmhLVmSqEPjhmQVvcn8\"" + "value": "W/\"1af-gJGmrBHYOObEUPaPXapKohzUWPo\"" }, { "name": "cf-cache-status", @@ -519,7 +524,7 @@ }, { "name": "cf-ray", - "value": "8e60d6ae2b42d1e1-ICN" + "value": "9091b1206866aa62-ICN" }, { "name": "content-encoding", @@ -536,8 +541,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:13.785Z", - "time": 399, + "startedDateTime": "2025-01-28T14:32:26.928Z", + "time": 514, "timings": { "blocked": -1, "connect": -1, @@ -545,11 +550,11 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 399 + "wait": 514 } }, { - "_id": "42676d0d5869dfa19d4add7af77915d3", + "_id": "8c79b46fa8bcf3eef21910ed570402e5", "_order": 0, "cache": {}, "request": { @@ -591,7 +596,7 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"view\":\"list\",\"title\":\"A1\",\"sort\":0,\"public\":false,\"parent\":{\"$ref\":\"collections\",\"$id\":49869389},\"cover\":[]}" + "text": "{\"view\":\"list\",\"title\":\"A1\",\"sort\":0,\"public\":false,\"parent\":{\"$ref\":\"collections\",\"$id\":51900749},\"cover\":[]}" }, "queryString": [], "url": "https://api.raindrop.io/rest/v1/collection" @@ -602,13 +607,13 @@ "encoding": "base64", "mimeType": "application/json; charset=utf-8", "size": 364, - "text": "[\"IUQHACC+r86m/b+OKjhhbR3WI/bFKjpQWwV6euBWYgHWFpeHyQku1Lx9txNf7tdTE6dbEPXrunSFTNZDsIa9ENYqLfgKXasXMOYGBEeg3x903XdggLCPEsBXjIIswPY/gjBaO3AyK0pTz+6EwQbpNLdoeu+l0XXfVdxkdVXUaVXfCR+g327AC+ujEA5rOYLh11FBUCvK4BmB692CP78JsQ9xlExKThwSYE6XPjzIYiZH8DbqvPH1ZJZkY2PGiXkyCecFm2yS5tUHGgyIS3zA26jPg7MqDcMv0E5tCNHvl2BYA8Lv7wEAvhEwA1+x6MPMtRzEgzNC6HvdjXXBLpf23wtguhMuSTRr2Mv9bgAD\"]" + "text": "[\"IUQHACBm2qzqd1IqGR+QuhTtE/vPCvogtgL09MCtxAKsLS4PkxNcqHn7bie+3K+nJk63IOrXdekKmayHYA17IaxVOvAVulYvYMwTEByBfn/U9dCDAcI+SgBfMQmyANv/CMJk7cCpKaukMXfCaIP0mlu0g/fS6nroK26KpDGmyps74QP02y14YX0UwmEtRzD8OioIakUZbAhc7xb8+U2IQ4ijZFJy4pAAc7oM4UEWMzmCt1Hnra+nJi2mJpmm9VOSc5ZyWs3KrPhAgwFxiQ94G/V5dFalYfgF2ikMIfr9EgybgPD7ewCAbwTMwFcshjBzLQfx4JwQhkF3Y12wy6X99wKY7oRLEs0a9nK/GwM=\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:14 GMT" + "value": "Tue, 28 Jan 2025 14:32:27 GMT" }, { "name": "content-type", @@ -628,7 +633,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=139.099" + "value": "dc;desc=eu, total;dur=203.362" }, { "name": "cache-control", @@ -640,15 +645,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "105" + "value": "115" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"1d2-rsxcXJ/OLNxHaFFOcg/IDpRNbDQ\"" + "value": "W/\"1d2-WV4Z19Wt4dNwNzLeRDxtblelVc4\"" }, { "name": "cf-cache-status", @@ -660,7 +665,7 @@ }, { "name": "cf-ray", - "value": "8e60d6b0c9ccd1e1-ICN" + "value": "9091b123bbc8aa62-ICN" }, { "name": "content-encoding", @@ -677,8 +682,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:14.199Z", - "time": 439, + "startedDateTime": "2025-01-28T14:32:27.458Z", + "time": 539, "timings": { "blocked": -1, "connect": -1, @@ -686,7 +691,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 439 + "wait": 539 } }, { @@ -743,13 +748,13 @@ "encoding": "base64", "mimeType": "application/json; charset=utf-8", "size": 352, - "text": "[\"IbgGACC+qfOn/V1HhUhb/zAiBFR0oLYK9PTArcQCrC0u8CSChJq37/DtZge/nojhuEXmrypcQZP1Dqx2L4S1Sg++QtdqBIwHEDr8/Pmk63EAA4S9Ewu+YmZlAdZ/DoTZugPHYV5EVXgnTLWVQcHD3hjCe/PbLXhRGyeEw1qOYJi1UxC4iDI4JCC5W/DXD8GN1o6ESKmTrk7ARZfRPsoipSOY2um8lfU4jFMvirw4eo5iznKOUr8Ms08ESEjn+ICpnb5MXa0S8Oxv3YHTqsyrpEoIzuyXYDQg/P0desIDABX4isVoS+7lIAacEuw46mhsZ+vlsm6M9Et3wpqIZrV7ud8NAw==\"]" + "text": "[\"IbgGACC+qfOn/V1HhUhb/zAiBFR0oLYK9PTArcQCrC0u8CSChJq37/DtZge/nojhuEXmrypcQZP1Dqx2L4S1Sg++QtdqBIwHEDr8/Pmk63EAA4S9Ewu+YmZlAdZ/DoTZugPHYV5EVXgnTLWVQcHD3hjCe/PbLXhRGyeEw1qOYJi1UxC4iDI4JCC5W/DXD8GN1o6ESKmTrk7ARZfRPsoipSOY2um8lfU4jDMvjLy4fI5STmKOSz8qs08ESEjn+ICpnb5MXa0S8Oxv3YGzqArDIosIzuyXYDQg/P0desIDABX4isVoS+7lIAacEuw46mhsZ+vlsm6M9Et3wpqIZrV7ud8NAw==\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:15 GMT" + "value": "Tue, 28 Jan 2025 14:32:28 GMT" }, { "name": "content-type", @@ -769,7 +774,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=115.880" + "value": "dc;desc=eu, total;dur=164.125" }, { "name": "cache-control", @@ -781,15 +786,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "101" + "value": "114" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"1af-hFGPkPI9hIH9qzYvHe5hjp65zxw\"" + "value": "W/\"1af-2jEbVB4mL9rxX2UNTwh17BLEjNQ\"" }, { "name": "cf-cache-status", @@ -801,7 +806,7 @@ }, { "name": "cf-ray", - "value": "8e60d6b39914d1e1-ICN" + "value": "9091b1272f4faa62-ICN" }, { "name": "content-encoding", @@ -818,8 +823,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:14.645Z", - "time": 404, + "startedDateTime": "2025-01-28T14:32:28.012Z", + "time": 497, "timings": { "blocked": -1, "connect": -1, @@ -827,11 +832,11 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 404 + "wait": 497 } }, { - "_id": "4636d040d209fc7680a85dcd1f82a864", + "_id": "7d19ef3edd415fd54e92a1a4ab5e3476", "_order": 0, "cache": {}, "request": { @@ -873,7 +878,7 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"view\":\"list\",\"title\":\"B1\",\"sort\":0,\"public\":false,\"parent\":{\"$ref\":\"collections\",\"$id\":49869393},\"cover\":[]}" + "text": "{\"view\":\"list\",\"title\":\"B1\",\"sort\":0,\"public\":false,\"parent\":{\"$ref\":\"collections\",\"$id\":51900751},\"cover\":[]}" }, "queryString": [], "url": "https://api.raindrop.io/rest/v1/collection" @@ -884,13 +889,13 @@ "encoding": "base64", "mimeType": "application/json; charset=utf-8", "size": 368, - "text": "[\"IUQHACC+qfOn/V1HFeywtv5hRAio6EBtFejpecBQYgHWFpcfDye5UPP23U58uV+3CX56i4rrb63uCpmsh2D1eyGsVVrwFbpWJ2A8GBAaAv36oOu+AwOEfRAPvmLkZQG2/wGE0boB21mamWJ2Jwyll05rk7p3Tmpd913HTVzkaREV0Z3wAfrtGrwoXRDCYS1HMNw6KAhqRQU8I3C9e/DXDyH0Pk+SSbmRBgkyp2vvH2WxUyC4Mui8jnU7s/HYmLE1z8ZykrJJJtbEnxgwJk0hJA+4MujL0JQq3v4BLaSE4PZLMCoDwt/fAQC9ETADX7Ho/c65HMSBY4Lvez0b3/hyuSwrJ4D5TrhJYln9Xu53AwM=\"]" + "text": "[\"IUQHACC+qfOn/V1HhUhb/zAiBFR0oLYK9PQ8YCixAGuLy4+Hk1yoeftuJ77cr9sEP71FxfW3VneFTNZDsNq9ENYqPfgKXasRMB4iEDoC/fqk63EAA4S9Ewu+YmZlAbb/DoTZugPHYV5EVXgnTLWVQWuTdjRGWl2PQ8dNFlVhWGTRnfAB+u0WvKiNE8JhLUcwzNopCGpFBRwSuN49+OuH4EabJ8mk3EmHBJnTdbSPstgpEEztdN7GehzGmRdGXlw+RyknMceln1fpJwaMSVcI2QOmdvoydbWKt39ACzHBmf0SjCYC4e/vAIDeCJiBr1iMdudcDmLAKcGOo56N72y9XNaNEcB8J9wksax2L/e7AQM=\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:15 GMT" + "value": "Tue, 28 Jan 2025 14:32:29 GMT" }, { "name": "content-type", @@ -910,7 +915,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=154.826" + "value": "dc;desc=eu, total;dur=201.913" }, { "name": "cache-control", @@ -922,15 +927,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "98" + "value": "113" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"1d2-xMAjes0pF2KD/u6oY94WvypEnG0\"" + "value": "W/\"1d2-RuKrCBNFj1spJDIodJstSAB7tys\"" }, { "name": "cf-cache-status", @@ -942,7 +947,7 @@ }, { "name": "cf-ray", - "value": "8e60d6b62fa5d1e1-ICN" + "value": "9091b12a6a27aa62-ICN" }, { "name": "content-encoding", @@ -953,14 +958,14 @@ "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 484, + "headersSize": 485, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:15.056Z", - "time": 442, + "startedDateTime": "2025-01-28T14:32:28.524Z", + "time": 529, "timings": { "blocked": -1, "connect": -1, @@ -968,11 +973,11 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 442 + "wait": 529 } }, { - "_id": "7e2e584dca2d679e7c5afdf456ddb250", + "_id": "acad9114ef5519827a712f24bfd102b0", "_order": 0, "cache": {}, "request": { @@ -1014,7 +1019,7 @@ "postData": { "mimeType": "application/json", "params": [], - "text": "{\"view\":\"list\",\"title\":\"B2\",\"sort\":0,\"public\":false,\"parent\":{\"$ref\":\"collections\",\"$id\":49869393},\"cover\":[]}" + "text": "{\"view\":\"list\",\"title\":\"B2\",\"sort\":0,\"public\":false,\"parent\":{\"$ref\":\"collections\",\"$id\":51900751},\"cover\":[]}" }, "queryString": [], "url": "https://api.raindrop.io/rest/v1/collection" @@ -1025,13 +1030,13 @@ "encoding": "base64", "mimeType": "application/json; charset=utf-8", "size": 368, - "text": "[\"IUQHACC+qfOn/V1HhUhb/zAiBFR0oLYK9PTArTCwAGuLCzw5wYWat+924sv9emridAuifl2XrpDJeghWuxfCWqUHX6FrNQLGQwxCR6Dfn3Q9DmCAsHdiwVfMrCzA9t+BMFt34DjMi6gK74SptjJobtGOxkir63GouEmrMq+SKrkTPkC/3YIXtXFCOKzlCIZZOwVBraiAQwLXuwd//RDcaOMomZQ76ZAAc7qO9lEWMwWCqZ3OW1+Pwzj1osiLo+co5iznKPPzPPtEgwHpEh8wtdOXqatVGtIf0FYahgRn9kswmhiEv78DAHwjYAa+YjHamWs5iAGnBDuOuhvf2Xq5rBsjgPlOuCSxrHYv97sBAw==\"]" + "text": "[\"IUQHACC+qfOn/V1HhUhb/zAiBFR0oLYK9PQ8YCixAGuLy4+Hk1yoeftuJ77cr9sEP71FxfW3VneFTNZDsNq9ENYqPfgKXasRMB5iEDoC/fqk63EAA4S9Ewu+YmZlAbb/DoTZugPHYV5EVXgnTLWVQWuTdjRGWl2PQ8dNFlVhWGTRnfAB+u0WvKiNE8JhLUcwzNopCGpFBRwSuN49+OuH4EabJ8mk3EmHBJnTdbSPstgpEEztdN7GehzGmRdGXlw+RyknMceVHyfZJwaMSVcI+QOmdvoydbWKt39ACwnBmf0SjCYG4e/vAIDeCJiBr1iMdudcDmLAKcGOo56N72y9XNaNEcB8J9wksax2L/e7AQM=\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:15 GMT" + "value": "Tue, 28 Jan 2025 14:32:29 GMT" }, { "name": "content-type", @@ -1051,7 +1056,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=167.652" + "value": "dc;desc=eu, total;dur=173.434" }, { "name": "cache-control", @@ -1063,15 +1068,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "94" + "value": "112" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"1d2-9YQ86C1wX/gHB/rrXHhGw3Ls/3w\"" + "value": "W/\"1d2-wUsavTn21Uv7BTw4d3SZ65eUkB0\"" }, { "name": "cf-cache-status", @@ -1083,7 +1088,7 @@ }, { "name": "cf-ray", - "value": "8e60d6b8eed4d1e1-ICN" + "value": "9091b12dccaeaa62-ICN" }, { "name": "content-encoding", @@ -1094,14 +1099,14 @@ "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 484, + "headersSize": 485, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:15.505Z", - "time": 458, + "startedDateTime": "2025-01-28T14:32:29.066Z", + "time": 515, "timings": { "blocked": -1, "connect": -1, @@ -1109,7 +1114,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 458 + "wait": 515 } }, { @@ -1166,13 +1171,13 @@ "encoding": "base64", "mimeType": "application/json; charset=utf-8", "size": 356, - "text": "[\"IbgGACC+qfOn/V1HhUhb7w8bQkBFB2qrQE/PA4YSC7C2uMCDSBL6/PsO32528OumiH7+IvM3TdMVNFnvwGr3Qlir9OArdK1GwHgAocPPn590PQ5ggLB3YsFXzKwswPrPgTBbd+A4zIuoCu+EqbYyKHjYG0P43vx2C17UxgnhsJYjGGbtFAQuogIOCUjuHvz1Q3Cj9RMhUu6k6xNx0XW0j7IoGQimdjpvZT0O49SLIi+OnqOYs5yj3I/i4hMJatIFQvmAqZ2+TF2tYmd/6w6cVmVepWFKcGa/BKMF4e/vMBM9ANCBr1iMtuWxHMSAU4IdR12N72y9XNaNkXn5TjgTsax2L/e7AQM=\"]" + "text": "[\"IbgGACC+qfOn/V1HhUhb7w8bQkBFB2qrQE/PA4YSC7C2uMCDSBL6/PsO32528OumiH7+IvM3TdMVNFnvwGr3Qlir9OArdK1GwHgAocPPn590PQ5ggLB3YsFXzKwswPrPgTBbd+A4zIuoCu+EqbYyKHjYG0P43vx2C17UxgnhsJYjGGbtFAQuogIOCUjuHvz1Q3Cj9RMhUu6k6xNx0XW0j7IoGQimdjpvZT0O48wLIy8un6OUk5jjyi+K5BMJatIFQvaAqZ2+TF2tYmd/6w6cRVUYFllKcGa/BKMF4e/vMBM9ANCBr1iMtuWxHMSAU4IdR12N72y9XNaNkXn5TjgTsax2L/e7AQM=\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:16 GMT" + "value": "Tue, 28 Jan 2025 14:32:30 GMT" }, { "name": "content-type", @@ -1192,7 +1197,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, total;dur=114.357" + "value": "dc;desc=eu, total;dur=182.486" }, { "name": "cache-control", @@ -1204,15 +1209,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "90" + "value": "111" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"1af-DZZB0cJHhqADQXiRHtp0l+quDWg\"" + "value": "W/\"1af-rVJYwfBA0SJFKLetRW/1aN5tbxY\"" }, { "name": "cf-cache-status", @@ -1224,7 +1229,7 @@ }, { "name": "cf-ray", - "value": "8e60d6bbde2ad1e1-ICN" + "value": "9091b1311f0aaa62-ICN" }, { "name": "content-encoding", @@ -1235,14 +1240,14 @@ "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 484, + "headersSize": 485, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:15.969Z", - "time": 402, + "startedDateTime": "2025-01-28T14:32:29.595Z", + "time": 504, "timings": { "blocked": -1, "connect": -1, @@ -1250,7 +1255,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 402 + "wait": 504 } }, { @@ -1289,18 +1294,18 @@ "url": "https://api.raindrop.io/rest/v1/collections" }, "response": { - "bodySize": 760, + "bodySize": 448, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 760, - "text": "[\"Qcw0ACD+t1Z2una95AioSNPyb0lOc10XlK+hCpcCnNnn/5p+TB8v8R/YF7qM5wd4drZIrwYssVm0zUaQPhyOsApUZmtOXBpbPA6JR5hSzPiLMlmjQDWfLFDQ6PKgT3/xLQaQcYN1/eAEaqyJQXiAQNhQf/Kjxn0DAQJn4Qz6i/vMM6gfr0DgPgaQbu2tc+1/gcNn3ipoO1MSuO/8whNo9qmwwI/IP0FIsVQIFCfqg1qBrd1DQZ++CJQ9j0sVknqBg+LiRunBPb/kGaS8MPPKBDa/Mghr/B2Tc11rIcCrjwkE/BdIvtSH6XNm1602suuk7l53mq6Wul4503/EPEVwYNyD5Et9cwRfWWCvks4FBA+BEwK6g/5i3rPuUrWu0SAjkPe9mio0ZL8sfkwMmvdf4D8SYSgeO5zrf6jHhmTU0F4lxnRIegV667EBptvC9eW+19j8UxUwIZ3u4Z02QhdozYWrzPte5WTi812X32bA92B4rvUo1DTnobKPW8j7oeLemMZqKs497dIYNzTW9Y0bGm5HP7ueu1m7mx+DnvTo/ciseeqnqbtp5iWGAKSrMsahXpW5thJvGp4jnjPyR4NwF3w3a+tLsXm538x1er7MZ0qXwy/x8FL9ktwvx60+uwsZLVplnAYf1vZWEigQZ2tMAhKQ55rPq02rY0eX134pL7bntkKaob6x4FrHC4xd4t2rX4qMW244a4hj0/4P9ZTlm7SqAxTdqk4PAq+wbN9rws798t8AAw==\"]" + "size": 448, + "text": "[\"MQAVACDw9M2l8v+dnMAmPO5a4RACe9QAtux/nroGIxKM4M/znAcwFhvdvsUr1vNptRIWvIhL5/YbioUxQcnirf0ikzWBLtNqBUGjx9HHX16PNRqb3PfTKBeW49JYlC1C3VB//rAc+w4FYZ3thP6ymewOHffNCJtjjQZ+kprc/xeGYrLdgnZr0wj/nd9dobuima3wcbSfKM1xXhDEiVrUF1q7++jjszD3kx0KSU1t68RVo3S3ny7sDk2eIp8mdEVrUdrj97HJc+MnCLYtjg0K/0JTzMu22s76wA9ixzdOkF2ZSMNAg9Q1xjwQZ4CtHS/QFPNyPdTFYhecmpt1j1IgvBAwjv6y66fcodY1iUbC1PfLUfn1VOz3RdnYopl/4R4JmbK142Lzo84glbkmi+FYhZjER5dgoh91DqncTdNQOHfTFCQ+q4J+/jcAAw==\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:16 GMT" + "value": "Tue, 28 Jan 2025 14:32:30 GMT" }, { "name": "content-type", @@ -1320,7 +1325,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, find_collections;dur=29.971, total;dur=38.829" + "value": "dc;desc=eu, find_collections;dur=24.683, total;dur=33.880" }, { "name": "cache-control", @@ -1332,15 +1337,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "82" + "value": "110" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"d34-U7O3iEeT0wP2n7Sy/nCE/Ux3gtQ\"" + "value": "W/\"541-UrPrGusLA1+Z7hPvfRpac5+2XLg\"" }, { "name": "cf-cache-status", @@ -1352,7 +1357,7 @@ }, { "name": "cf-ray", - "value": "8e60d6be6ca3d1e1-ICN" + "value": "9091b1345985aa62-ICN" }, { "name": "content-encoding", @@ -1363,14 +1368,14 @@ "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 512, + "headersSize": 513, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:16.377Z", - "time": 329, + "startedDateTime": "2025-01-28T14:32:30.117Z", + "time": 363, "timings": { "blocked": -1, "connect": -1, @@ -1378,7 +1383,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 329 + "wait": 363 } }, { @@ -1417,18 +1422,18 @@ "url": "https://api.raindrop.io/rest/v1/collections/childrens" }, "response": { - "bodySize": 900, + "bodySize": 596, "content": { "encoding": "base64", "mimeType": "application/json; charset=utf-8", - "size": 900, - "text": "[\"URBLACD2Tc2v2pu1SxSIJ15358rtTxlJSGYGhQH0s/7/e+cfMKSHTXyBPaHue6+xj3/ALFuL1rQsWlog3xoTqIg6HmCEc2InMMrmGtf692lE6YlUW0pp/5Amqx+opMMzJDS6ANDnf/geRpCynbHSGoYSSvQg3DkYxhH1R99L2FYQwHBkn0D/8Jj8BFpWn8HwGEaQaM2V2/Zk2F3ya9GVGLYY/VDCth5Bz1olT4Y/op95AE0uZs/wM/hfIMSQCxjSF3WBWobB33uBPn9lyFsqIM6QQ6k4+rFobCh19y298hOoePTS5sawusWDsIQ/IVrLWwMGv7gQQcDJEF0ut6G8k4tWqIrzSvA3XJA2xHUtuPqE8+TnR0VBL0l0ubzdR1e8Qdm17SRzPGYQeg6GSQRag/5h2tLF84Re/UGKIW1bqSvPMbl5dn30vIonw6cmdFcwvXKdTfFtrdF6xEje9bRCJGurJFeMBnyj+F4HtspZeUfdhUjVXau5YjTgBpnTbfSCqLazL6+2rTx1hPsTmZhWSHwrFNWl6GT2pUrbVqo4s7n83ppOVoaXUvZMTXPsdXJhHdO212FrqsbWJBO83rlRtmuMlY3tGt/2brLS80nYq+tHMYjeud574Qc5DPwnQrex5RDpWilLqmulW64bBdgUMn80CA+j45MwbSkwLnebfBleLtMR42V3c5iX1ny5b9ueZnXdvMuo09TKCvJxjTTcIIWuroUKqZBqU+/DKlUr+o4Wb9ycn9fIsF8xraG4asG2FgwGunjr4uZchTU2bDTFgWH/Gp8iwXa6bYKcUHJTc9FRXYqLHkI6wi//9uT7Ezt7skukaqk7rhhNJOYbddWPdtwtkfbj74Le+L3UuKZWMI3RVDE6UIMMlyXE+fU0AAM=\"]" + "size": 596, + "text": "[\"QUQrACB+qu6n/YnxiFxSbwOG7bdu4guy5JT2e/7vVh5hROGAhOEI/vld1PMAs+y68H6epYmFtTfQLsmCLGJrx8mrOrcSfh9TB7MBfMRZ+kOarD7wMq1CSGj0BODnP7wHD850pVSRGcISlihgHDUIfkf9zYcl9B0YIKyzTOA/7CZpwOXyMwi74MFG5YWu1EYY3CTdwh2p+xilXkLfXQGtdvRG+CP6g2tw4+IshM8gX2DEMC8gpC9qgRVh8/cp8PMrYe6nBawJOZSaXnxobCt1ez9dSQMOD7p2NELnWgGjDT8hVpVWOQjSuhDBwEaIbl4Odby7G2WyvdJ7U97olK1hUyZ5lT6hnXbiiVx25ujm5XbwbhGHfJWYohid43oB46xB+IjAMPgPTT91HhN69YNTwtT3y71y+sldLu4cRVdzI7xqAqfC8hJpVfCh9tStMYp3P8qoikRrjcQ0wANwy64SmX6ijkZVJrrMkJgG6JANukUXQfpEnYyqSorCSq6SokAu4KZrE6jbPyyDfzKtttlUZG4zIKYDOGRY9DJIZPbnj0be/J5wrmrg6ka5FBBvbA5cNuHelpHXeN0MAw==\"]" }, "cookies": [], "headers": [ { "name": "date", - "value": "Thu, 21 Nov 2024 12:56:16 GMT" + "value": "Tue, 28 Jan 2025 14:32:31 GMT" }, { "name": "content-type", @@ -1448,7 +1453,7 @@ }, { "name": "server-timing", - "value": "dc;desc=eu, find_collections;dur=23.233, total;dur=32.150" + "value": "dc;desc=eu, find_collections;dur=25.285, total;dur=36.090" }, { "name": "cache-control", @@ -1460,15 +1465,15 @@ }, { "name": "x-ratelimit-remaining", - "value": "81" + "value": "109" }, { "name": "x-ratelimit-reset", - "value": "1732193832" + "value": "1738074805" }, { "name": "etag", - "value": "W/\"12c5-uLFQ0A+hIfYSaVBtQCXTDufCQO8\"" + "value": "W/\"ad2-va6p//ZsXUSTaqUBmT+i8PHY+LQ\"" }, { "name": "cf-cache-status", @@ -1480,7 +1485,7 @@ }, { "name": "cf-ray", - "value": "8e60d6be8d08ea8d-ICN" + "value": "9091b134fa9e3273-ICN" }, { "name": "content-encoding", @@ -1497,8 +1502,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-11-21T12:56:16.378Z", - "time": 346, + "startedDateTime": "2025-01-28T14:32:30.123Z", + "time": 1685, "timings": { "blocked": -1, "connect": -1, @@ -1506,7 +1511,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 346 + "wait": 1685 } } ], diff --git a/tests/client/collection.test.ts b/tests/client/collection.test.ts index a4c7a77..d757f1b 100644 --- a/tests/client/collection.test.ts +++ b/tests/client/collection.test.ts @@ -43,29 +43,16 @@ describe("collection.getCollectionTree", () => { visits.push(`${node.data?._id || null}: ${node.data?.title || "root"}`); }); + expect(visits).toHaveLength(7); expect(visits).toMatchInlineSnapshot(` [ "null: root", - "49869389: A", - "49869391: A1", - "49869389: A", - "49869391: A1", - "49869393: B", - "49869396: B1", - "49869400: B2", - "49869393: B", - "49869396: B1", - "49869400: B2", - "49869404: C", - "49869404: C", - "49869399: fetch full pagination results", - "49869399: fetch full pagination results", - "49869394: getRootCollections", - "49869394: getRootCollections", - "49869398: getRootCollections", - "49869398: getRootCollections", - "49869402: getTagsInCollection", - "49869402: getTagsInCollection", + "51900749: A", + "51900750: A1", + "51900751: B", + "51900752: B1", + "51900753: B2", + "51900754: C", ] `); });