1
- import * as taskConverters from './utils/taskConverters'
2
1
import { TodoistApi } from '.'
3
- import { Task } from './types'
4
2
import {
5
3
DEFAULT_AUTH_TOKEN ,
6
- DEFAULT_QUICK_ADD_RESPONSE ,
7
4
DEFAULT_REQUEST_ID ,
8
5
DEFAULT_TASK ,
9
- RAW_DEFAULT_TASK ,
10
6
TASK_WITH_OPTIONALS_AS_NULL ,
7
+ DEFAULT_TASK_ID ,
11
8
} from './testUtils/testDefaults'
12
9
import {
13
10
getSyncBaseUri ,
@@ -18,10 +15,7 @@ import {
18
15
ENDPOINT_SYNC_QUICK_ADD ,
19
16
} from './consts/endpoints'
20
17
import { setupRestClientMock } from './testUtils/mocks'
21
-
22
- function setupSyncTaskConverter ( returnedTask : Task ) {
23
- return jest . spyOn ( taskConverters , 'getTaskFromQuickAddResponse' ) . mockReturnValue ( returnedTask )
24
- }
18
+ import { getTaskUrl } from './utils/urlHelpers'
25
19
26
20
function getTarget ( baseUrl = 'https://api.todoist.com' ) {
27
21
return new TodoistApi ( DEFAULT_AUTH_TOKEN , baseUrl )
@@ -34,7 +28,7 @@ describe('TodoistApi task endpoints', () => {
34
28
}
35
29
36
30
test ( 'calls post on restClient with expected parameters' , async ( ) => {
37
- const requestMock = setupRestClientMock ( RAW_DEFAULT_TASK )
31
+ const requestMock = setupRestClientMock ( DEFAULT_TASK )
38
32
const api = getTarget ( )
39
33
40
34
await api . addTask ( DEFAULT_ADD_TASK_ARGS , DEFAULT_REQUEST_ID )
@@ -51,7 +45,7 @@ describe('TodoistApi task endpoints', () => {
51
45
} )
52
46
53
47
test ( 'calls post on restClient with expected parameters against staging' , async ( ) => {
54
- const requestMock = setupRestClientMock ( RAW_DEFAULT_TASK )
48
+ const requestMock = setupRestClientMock ( DEFAULT_TASK )
55
49
const api = getTarget ( 'https://staging.todoist.com' )
56
50
57
51
await api . addTask ( DEFAULT_ADD_TASK_ARGS , DEFAULT_REQUEST_ID )
@@ -68,7 +62,7 @@ describe('TodoistApi task endpoints', () => {
68
62
} )
69
63
70
64
test ( 'returns result from rest client' , async ( ) => {
71
- setupRestClientMock ( RAW_DEFAULT_TASK )
65
+ setupRestClientMock ( DEFAULT_TASK )
72
66
const api = getTarget ( )
73
67
74
68
const task = await api . addTask ( DEFAULT_ADD_TASK_ARGS )
@@ -79,10 +73,14 @@ describe('TodoistApi task endpoints', () => {
79
73
80
74
describe ( 'updateTask' , ( ) => {
81
75
const DEFAULT_UPDATE_TASK_ARGS = { content : 'some new content' }
76
+ const DEFAULT_UPDATED_TASK_URL = getTaskUrl (
77
+ DEFAULT_TASK_ID ,
78
+ DEFAULT_UPDATE_TASK_ARGS . content ,
79
+ )
82
80
83
81
test ( 'calls post on restClient with expected parameters' , async ( ) => {
84
82
const taskId = '123'
85
- const requestMock = setupRestClientMock ( RAW_DEFAULT_TASK , 204 )
83
+ const requestMock = setupRestClientMock ( DEFAULT_TASK , 204 )
86
84
const api = getTarget ( )
87
85
88
86
await api . updateTask ( taskId , DEFAULT_UPDATE_TASK_ARGS , DEFAULT_REQUEST_ID )
@@ -99,20 +97,17 @@ describe('TodoistApi task endpoints', () => {
99
97
} )
100
98
101
99
test ( 'returns success result from rest client' , async ( ) => {
102
- const RAW_DEFAULT_TASK_WITH_UPDATES = {
103
- ...RAW_DEFAULT_TASK ,
104
- content : DEFAULT_UPDATE_TASK_ARGS . content ,
100
+ const returnedTask = {
101
+ ...DEFAULT_TASK ,
102
+ ...DEFAULT_UPDATE_TASK_ARGS ,
103
+ url : DEFAULT_UPDATED_TASK_URL ,
105
104
}
106
- setupRestClientMock ( RAW_DEFAULT_TASK_WITH_UPDATES , 204 )
105
+ setupRestClientMock ( returnedTask , 204 )
107
106
const api = getTarget ( )
108
107
109
108
const response = await api . updateTask ( '123' , DEFAULT_UPDATE_TASK_ARGS )
110
109
111
- const DEFAULT_TASK_WITH_UPDATES = {
112
- ...DEFAULT_TASK ,
113
- content : DEFAULT_UPDATE_TASK_ARGS . content ,
114
- }
115
- expect ( response ) . toEqual ( DEFAULT_TASK_WITH_UPDATES )
110
+ expect ( response ) . toEqual ( returnedTask )
116
111
} )
117
112
} )
118
113
@@ -212,7 +207,7 @@ describe('TodoistApi task endpoints', () => {
212
207
}
213
208
214
209
test ( 'calls sync endpoint with expected parameters' , async ( ) => {
215
- const requestMock = setupRestClientMock ( DEFAULT_QUICK_ADD_RESPONSE )
210
+ const requestMock = setupRestClientMock ( DEFAULT_TASK )
216
211
const api = getTarget ( )
217
212
218
213
await api . quickAddTask ( DEFAULT_QUICK_ADD_ARGS )
@@ -228,22 +223,17 @@ describe('TodoistApi task endpoints', () => {
228
223
} )
229
224
230
225
test ( 'calls task converter with response data and returns result' , async ( ) => {
231
- setupRestClientMock ( DEFAULT_QUICK_ADD_RESPONSE )
232
- const taskConverter = setupSyncTaskConverter ( DEFAULT_TASK )
226
+ setupRestClientMock ( DEFAULT_TASK )
233
227
const api = getTarget ( )
234
-
235
228
const task = await api . quickAddTask ( DEFAULT_QUICK_ADD_ARGS )
236
-
237
- expect ( taskConverter ) . toBeCalledTimes ( 1 )
238
- expect ( taskConverter ) . toBeCalledWith ( DEFAULT_QUICK_ADD_RESPONSE )
239
229
expect ( task ) . toEqual ( DEFAULT_TASK )
240
230
} )
241
231
} )
242
232
243
233
describe ( 'getTask' , ( ) => {
244
234
test ( 'calls get request with expected url' , async ( ) => {
245
235
const taskId = '12'
246
- const requestMock = setupRestClientMock ( RAW_DEFAULT_TASK )
236
+ const requestMock = setupRestClientMock ( DEFAULT_TASK )
247
237
const api = getTarget ( )
248
238
249
239
await api . getTask ( taskId )
@@ -267,7 +257,7 @@ describe('TodoistApi task endpoints', () => {
267
257
268
258
test ( 'calls get on expected endpoint with args' , async ( ) => {
269
259
const requestMock = setupRestClientMock ( {
270
- results : [ RAW_DEFAULT_TASK , TASK_WITH_OPTIONALS_AS_NULL ] ,
260
+ results : [ DEFAULT_TASK , TASK_WITH_OPTIONALS_AS_NULL ] ,
271
261
nextCursor : '123' ,
272
262
} )
273
263
const api = getTarget ( )
@@ -285,13 +275,13 @@ describe('TodoistApi task endpoints', () => {
285
275
} )
286
276
287
277
test ( 'returns result from rest client' , async ( ) => {
288
- const tasks = [ RAW_DEFAULT_TASK ]
278
+ const tasks = [ DEFAULT_TASK ]
289
279
setupRestClientMock ( { results : tasks , nextCursor : '123' } )
290
280
const api = getTarget ( )
291
281
292
282
const { results, nextCursor } = await api . getTasks ( DEFAULT_GET_TASKS_ARGS )
293
283
294
- expect ( results ) . toEqual ( [ DEFAULT_TASK ] )
284
+ expect ( results ) . toEqual ( tasks )
295
285
expect ( nextCursor ) . toBe ( '123' )
296
286
} )
297
287
} )
@@ -305,10 +295,7 @@ describe('TodoistApi task endpoints', () => {
305
295
}
306
296
307
297
test ( 'calls get request with expected url' , async ( ) => {
308
- const requestMock = setupRestClientMock ( {
309
- results : [ RAW_DEFAULT_TASK ] ,
310
- nextCursor : null ,
311
- } )
298
+ const requestMock = setupRestClientMock ( { results : [ DEFAULT_TASK ] , nextCursor : null } )
312
299
const api = getTarget ( )
313
300
314
301
await api . getTasksByFilter ( DEFAULT_GET_TASKS_BY_FILTER_ARGS )
@@ -324,7 +311,7 @@ describe('TodoistApi task endpoints', () => {
324
311
} )
325
312
326
313
test ( 'returns result from rest client' , async ( ) => {
327
- setupRestClientMock ( { results : [ RAW_DEFAULT_TASK ] , nextCursor : null } )
314
+ setupRestClientMock ( { results : [ DEFAULT_TASK ] , nextCursor : null } )
328
315
const api = getTarget ( )
329
316
330
317
const response = await api . getTasksByFilter ( DEFAULT_GET_TASKS_BY_FILTER_ARGS )
@@ -336,7 +323,7 @@ describe('TodoistApi task endpoints', () => {
336
323
} )
337
324
338
325
test ( 'validates task array in response' , async ( ) => {
339
- const invalidTask = { ...RAW_DEFAULT_TASK , due : '2020-01-31' }
326
+ const invalidTask = { ...DEFAULT_TASK , due : '2020-01-31' }
340
327
setupRestClientMock ( { results : [ invalidTask ] , nextCursor : null } )
341
328
const api = getTarget ( )
342
329
0 commit comments