musora-content-services 1.2.5 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +5 -0
- package/.prettierrc +8 -0
- package/CHANGELOG.md +9 -0
- package/README.md +0 -0
- package/babel.config.cjs +1 -1
- package/jest.config.js +9 -10
- package/jsdoc.json +17 -12
- package/package.json +2 -1
- package/src/contentMetaData.js +1190 -1131
- package/src/contentTypeConfig.js +492 -387
- package/src/filterBuilder.js +163 -145
- package/src/index.d.ts +227 -237
- package/src/index.js +226 -236
- package/src/services/config.js +12 -12
- package/src/services/contentLikes.js +33 -32
- package/src/services/contentProgress.js +233 -200
- package/src/services/dataContext.js +99 -93
- package/src/services/lastUpdated.js +7 -7
- package/src/services/railcontent.js +368 -364
- package/src/services/sanity.js +975 -955
- package/src/services/userPermissions.js +12 -14
- package/test/contentLikes.test.js +89 -86
- package/test/contentProgress.test.js +229 -236
- package/test/initializeTests.js +54 -51
- package/test/lastUpdated.test.js +20 -18
- package/test/live/contentProgressLive.test.js +135 -137
- package/test/live/railcontentLive.test.js +12 -14
- package/test/localStorageMock.js +16 -16
- package/test/log.js +5 -5
- package/test/sanityQueryService.test.js +857 -821
- package/test/userPermissions.test.js +15 -15
- package/tools/generate-index.cjs +108 -111
|
@@ -1,241 +1,234 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} from
|
|
16
|
-
import {initializeTestService} from
|
|
17
|
-
import {postContentCompleted} from
|
|
2
|
+
getProgressPercentage,
|
|
3
|
+
dataContext,
|
|
4
|
+
recordWatchSession,
|
|
5
|
+
getProgressPercentageByIds,
|
|
6
|
+
getProgressState,
|
|
7
|
+
getProgressStateByIds,
|
|
8
|
+
getAllStarted,
|
|
9
|
+
getAllCompleted,
|
|
10
|
+
contentStatusCompleted,
|
|
11
|
+
assignmentStatusCompleted,
|
|
12
|
+
contentStatusReset,
|
|
13
|
+
assignmentStatusReset,
|
|
14
|
+
getAllStartedOrCompleted,
|
|
15
|
+
} from '../src/services/contentProgress'
|
|
16
|
+
import { initializeTestService } from './initializeTests'
|
|
17
|
+
import { postContentCompleted } from '../src'
|
|
18
18
|
|
|
19
19
|
const railContentModule = require('../src/services/railcontent.js')
|
|
20
20
|
|
|
21
21
|
describe('contentProgressDataContext', function () {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
// state = await getProgressState(assignmentId); //assignment
|
|
236
|
-
// expect(state).toBe("");
|
|
237
|
-
//
|
|
238
|
-
// });
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
});
|
|
22
|
+
let mock = null
|
|
23
|
+
const testVersion = 1
|
|
24
|
+
let serverVersion = 2
|
|
25
|
+
|
|
26
|
+
beforeEach(() => {
|
|
27
|
+
initializeTestService()
|
|
28
|
+
mock = jest.spyOn(dataContext, 'fetchData')
|
|
29
|
+
var json = JSON.parse(
|
|
30
|
+
`{"version":${testVersion},"config":{"key":1,"enabled":1,"checkInterval":1,"refreshInterval":2},"data":{"234191":{"s":"started","p":6,"t":20,"u":1731108082},"233955":{"s":"started","p":1,"u":1731108083},"259426":{"s":"completed","p":100,"u":1731108085}}}`
|
|
31
|
+
)
|
|
32
|
+
mock.mockImplementation(() => json)
|
|
33
|
+
|
|
34
|
+
let mock2 = jest.spyOn(railContentModule, 'postRecordWatchSession')
|
|
35
|
+
mock2.mockImplementation(() => JSON.parse(`{"version": ${serverVersion}}`))
|
|
36
|
+
|
|
37
|
+
let mock3 = jest.spyOn(railContentModule, 'postContentCompleted')
|
|
38
|
+
mock3.mockImplementation(() => JSON.parse(`{"version": ${serverVersion}}`))
|
|
39
|
+
|
|
40
|
+
let mock4 = jest.spyOn(railContentModule, 'postContentReset')
|
|
41
|
+
mock4.mockImplementation(() => JSON.parse(`{"version": ${serverVersion}}`))
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
test('getProgressPercentage', async () => {
|
|
45
|
+
let result = await getProgressPercentage(234191)
|
|
46
|
+
expect(result).toBe(6)
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
test('getProgressPercentageByIds', async () => {
|
|
50
|
+
let result = await getProgressPercentageByIds([234191, 111111])
|
|
51
|
+
expect(result[234191]).toBe(6)
|
|
52
|
+
expect(result[111111]).toBe(0)
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
test('getProgressPercentage_notExists', async () => {
|
|
56
|
+
let result = await getProgressPercentage(111111)
|
|
57
|
+
expect(result).toBe(0)
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
test('getProgressState', async () => {
|
|
61
|
+
let result = await getProgressState(234191)
|
|
62
|
+
expect(result).toBe('started')
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
test('getProgressStateByIds', async () => {
|
|
66
|
+
let result = await getProgressStateByIds([234191, 120402])
|
|
67
|
+
expect(result[234191]).toBe('started')
|
|
68
|
+
expect(result[120402]).toBe('')
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
test('getAllStarted', async () => {
|
|
72
|
+
let result = await getAllStarted()
|
|
73
|
+
expect(result).toStrictEqual([233955, 234191])
|
|
74
|
+
|
|
75
|
+
result = await getAllStarted(1)
|
|
76
|
+
expect(result).toStrictEqual([233955])
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
test('getAllStartedOrCompleted', async () => {
|
|
80
|
+
let result = await getAllStartedOrCompleted()
|
|
81
|
+
expect(result).toStrictEqual([259426, 233955, 234191])
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
// test('getAllStartedWithUpdate', async () => {
|
|
85
|
+
// let mock2 = jest.spyOn(railContentModule, 'postRecordWatchSession');
|
|
86
|
+
// let serverVersion = 2;
|
|
87
|
+
// mock2.mockImplementation(() => JSON.parse(`{"version": ${serverVersion}}`));
|
|
88
|
+
// let result = await getAllStarted();
|
|
89
|
+
// expect(result).toStrictEqual([233955, 234191]);
|
|
90
|
+
// await recordWatchSession(111111, "video", "vimeo", 100, 50, 50);
|
|
91
|
+
//
|
|
92
|
+
// let result2 = await getAllStarted();
|
|
93
|
+
// expect(result2).toStrictEqual([111111, 233955, 234191]);
|
|
94
|
+
// });
|
|
95
|
+
|
|
96
|
+
// test('getAllCompletedWithUpdate', async () => {
|
|
97
|
+
// let mock2 = jest.spyOn(railContentModule, 'postContentCompleted');
|
|
98
|
+
// let serverVersion = 2;
|
|
99
|
+
// mock2.mockImplementation(() => JSON.parse(`{"version": ${serverVersion}}`));
|
|
100
|
+
//
|
|
101
|
+
// let result = await getAllCompleted();
|
|
102
|
+
// expect(result).toStrictEqual([259426]);
|
|
103
|
+
// await contentStatusCompleted(111111);
|
|
104
|
+
// let result2 = await getAllCompleted();
|
|
105
|
+
// expect(result2).toStrictEqual([111111, 259426]);
|
|
106
|
+
// });
|
|
107
|
+
|
|
108
|
+
test('progressBubbling', async () => {
|
|
109
|
+
let progress = await getProgressPercentage(241250) //force load context
|
|
110
|
+
|
|
111
|
+
await recordWatchSession(241250, 'video', 'vimeo', 100, 50, 50)
|
|
112
|
+
serverVersion++
|
|
113
|
+
await recordWatchSession(241251, 'video', 'vimeo', 100, 50, 50)
|
|
114
|
+
serverVersion++
|
|
115
|
+
await recordWatchSession(241252, 'video', 'vimeo', 100, 50, 50)
|
|
116
|
+
serverVersion++
|
|
117
|
+
await recordWatchSession(241260, 'video', 'vimeo', 100, 100, 100)
|
|
118
|
+
serverVersion++
|
|
119
|
+
await recordWatchSession(241261, 'video', 'vimeo', 100, 100, 100)
|
|
120
|
+
serverVersion++
|
|
121
|
+
progress = await getProgressPercentage(241250)
|
|
122
|
+
|
|
123
|
+
expect(progress).toBe(50)
|
|
124
|
+
let progress241249 = await getProgressPercentage(241249)
|
|
125
|
+
expect(progress241249).toBe(15)
|
|
126
|
+
let progress241248 = await getProgressPercentage(241248)
|
|
127
|
+
expect(progress241248).toBe(7)
|
|
128
|
+
let progress241247 = await getProgressPercentage(241247)
|
|
129
|
+
expect(progress241247).toBe(1)
|
|
130
|
+
}, 50000)
|
|
131
|
+
|
|
132
|
+
// test('completedProgressNotOverwritten', async () => {
|
|
133
|
+
// const contentId = 241262;
|
|
134
|
+
// let progress = await getProgressPercentage(241250); //force load context
|
|
135
|
+
// await contentStatusCompleted(contentId);
|
|
136
|
+
// await recordWatchSession(contentId, "video", "vimeo", 100, 50, 50);
|
|
137
|
+
// progress = await getProgressPercentage(contentId);
|
|
138
|
+
// expect(progress).toBe(100);
|
|
139
|
+
// });
|
|
140
|
+
|
|
141
|
+
test('assignmentCompleteBubbling', async () => {
|
|
142
|
+
let assignmentId = 286048
|
|
143
|
+
let contentId = 286047
|
|
144
|
+
|
|
145
|
+
let state = await getProgressState(contentId)
|
|
146
|
+
expect(state).toBe('')
|
|
147
|
+
let result = await assignmentStatusCompleted(assignmentId, contentId)
|
|
148
|
+
|
|
149
|
+
state = await getProgressState(assignmentId)
|
|
150
|
+
expect(state).toBe('completed')
|
|
151
|
+
state = await getProgressState(contentId) //assignment
|
|
152
|
+
expect(state).toBe('started')
|
|
153
|
+
})
|
|
154
|
+
|
|
155
|
+
// test('recordWatchSession', async () => {
|
|
156
|
+
// const contentId = 241250;
|
|
157
|
+
// let progress = await getProgressPercentage(contentId); //force load context
|
|
158
|
+
//
|
|
159
|
+
// await recordWatchSession(contentId, 'video', 'vimeo', 1673, 554, 5);
|
|
160
|
+
// progress = await getProgressPercentage(241250);
|
|
161
|
+
//
|
|
162
|
+
// expect(progress).toBe(33);
|
|
163
|
+
// });
|
|
164
|
+
// test('assignmentCompleteBubblingToCompleted', async () => {
|
|
165
|
+
// let assignmentId = 241685;
|
|
166
|
+
// let contentId = 241257;
|
|
167
|
+
//
|
|
168
|
+
// let state = await getProgressState(contentId);
|
|
169
|
+
// expect(state).toBe("");
|
|
170
|
+
// let result = await assignmentStatusCompleted(assignmentId, contentId);
|
|
171
|
+
//
|
|
172
|
+
// state = await getProgressState(assignmentId);
|
|
173
|
+
// expect(state).toBe("completed");
|
|
174
|
+
// state = await getProgressState(contentId); //assignment
|
|
175
|
+
// expect(state).toBe("completed");
|
|
176
|
+
// });
|
|
177
|
+
//
|
|
178
|
+
// test('assignmentCompleteResetBubblingMultiple', async () => {
|
|
179
|
+
// let contentId = 281709;
|
|
180
|
+
//
|
|
181
|
+
// let state = await getProgressState(contentId);
|
|
182
|
+
// expect(state).toBe("");
|
|
183
|
+
//
|
|
184
|
+
// let assignmentIds = [281710, 281711, 281712, 281713, 281714, 281715];
|
|
185
|
+
// for (const assignmentId of assignmentIds) {
|
|
186
|
+
// await assignmentStatusCompleted(assignmentId, contentId);
|
|
187
|
+
// state = await getProgressState(assignmentId);
|
|
188
|
+
// expect(state).toBe("completed");
|
|
189
|
+
// }
|
|
190
|
+
//
|
|
191
|
+
// state = await getProgressState(contentId);
|
|
192
|
+
// expect(state).toBe("completed");
|
|
193
|
+
//
|
|
194
|
+
// await assignmentStatusReset(assignmentIds[0], contentId);
|
|
195
|
+
// state = await getProgressState(assignmentIds[0]);
|
|
196
|
+
// expect(state).toBe("");
|
|
197
|
+
// state = await getProgressState(contentId);
|
|
198
|
+
// expect(state).toBe("started");
|
|
199
|
+
// let percentage = await getProgressPercentage(contentId);
|
|
200
|
+
// expect(percentage).toBe(83);
|
|
201
|
+
// });
|
|
202
|
+
|
|
203
|
+
//
|
|
204
|
+
// test('completeBubbling', async () => {
|
|
205
|
+
// let state = await getProgressState(276698);
|
|
206
|
+
// expect(state).toBe("");
|
|
207
|
+
// let result = await contentStatusCompleted(276698);
|
|
208
|
+
//
|
|
209
|
+
// state = await getProgressState(276698);
|
|
210
|
+
// expect(state).toBe("completed");
|
|
211
|
+
// state = await getProgressState(276699); //assignment
|
|
212
|
+
// expect(state).toBe("completed");
|
|
213
|
+
// });
|
|
214
|
+
//
|
|
215
|
+
// test('resetBubbling', async () => {
|
|
216
|
+
// let assignmentId = 241686;
|
|
217
|
+
// let contentId = 241258;
|
|
218
|
+
//
|
|
219
|
+
// let state = await getProgressState(contentId);
|
|
220
|
+
// expect(state).toBe("");
|
|
221
|
+
// let result = await contentStatusCompleted(contentId);
|
|
222
|
+
// state = await getProgressState(contentId);
|
|
223
|
+
// expect(state).toBe("completed");
|
|
224
|
+
// state = await getProgressState(assignmentId); //assignment
|
|
225
|
+
// expect(state).toBe("completed");
|
|
226
|
+
//
|
|
227
|
+
// result = await contentStatusReset(contentId);
|
|
228
|
+
// state = await getProgressState(contentId);
|
|
229
|
+
// expect(state).toBe("");
|
|
230
|
+
// state = await getProgressState(assignmentId); //assignment
|
|
231
|
+
// expect(state).toBe("");
|
|
232
|
+
//
|
|
233
|
+
// });
|
|
234
|
+
})
|
package/test/initializeTests.js
CHANGED
|
@@ -1,60 +1,63 @@
|
|
|
1
|
-
import {globalConfig, initializeService} from '../src'
|
|
2
|
-
import {LocalStorageMock} from
|
|
1
|
+
import { globalConfig, initializeService } from '../src'
|
|
2
|
+
import { LocalStorageMock } from './localStorageMock'
|
|
3
3
|
|
|
4
4
|
const railContentModule = require('../src/services/railcontent.js')
|
|
5
|
-
let token = null
|
|
6
|
-
let userId = null
|
|
5
|
+
let token = null
|
|
6
|
+
let userId = null
|
|
7
7
|
|
|
8
8
|
export async function initializeTestService(useLive = false) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
9
|
+
if (useLive && !token && process.env.RAILCONTENT_BASE_URL) {
|
|
10
|
+
let data = await fetchLoginToken(
|
|
11
|
+
process.env.RAILCONTENT_EMAIL,
|
|
12
|
+
process.env.RAILCONTENT_PASSWORD
|
|
13
|
+
)
|
|
14
|
+
token = data['token']
|
|
15
|
+
userId = data['userId']
|
|
16
|
+
}
|
|
17
|
+
const config = {
|
|
18
|
+
sanityConfig: {
|
|
19
|
+
token: process.env.SANITY_API_TOKEN,
|
|
20
|
+
projectId: process.env.SANITY_PROJECT_ID,
|
|
21
|
+
dataset: process.env.SANITY_DATASET,
|
|
22
|
+
useCachedAPI: process.env.SANITY_USE_CACHED_API === 'true' || true,
|
|
23
|
+
version: '2021-06-07',
|
|
24
|
+
debug: process.env.DEBUG === 'true' || false,
|
|
25
|
+
useDummyRailContentMethods: true,
|
|
26
|
+
},
|
|
27
|
+
railcontentConfig: {
|
|
28
|
+
baseUrl: process.env.RAILCONTENT_BASE_URL,
|
|
29
|
+
userId: userId,
|
|
30
|
+
authToken: token,
|
|
31
|
+
},
|
|
32
|
+
localStorage: new LocalStorageMock(),
|
|
33
|
+
}
|
|
34
|
+
initializeService(config)
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
let mock = jest.spyOn(railContentModule, 'fetchUserPermissionsData')
|
|
37
|
+
let testData = { permissions: [78, 91, 92], isAdmin: false }
|
|
38
|
+
mock.mockImplementation(() => testData)
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
async function fetchLoginToken(email, password) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
} catch (error) {
|
|
57
|
-
console.error('Fetch error:', error);
|
|
42
|
+
try {
|
|
43
|
+
const url = `${process.env.RAILCONTENT_BASE_URL}/user-management-system/login/token`
|
|
44
|
+
const response = await fetch(url, {
|
|
45
|
+
method: 'POST',
|
|
46
|
+
headers: {
|
|
47
|
+
Accept: 'application/json',
|
|
48
|
+
'Content-Type': 'application/json',
|
|
49
|
+
},
|
|
50
|
+
body: JSON.stringify({ email: email, password: password, device_name: 'test' }),
|
|
51
|
+
})
|
|
52
|
+
if (response.ok) {
|
|
53
|
+
let data = await response.json()
|
|
54
|
+
return { token: data.token, userId: data.user.id }
|
|
55
|
+
} else {
|
|
56
|
+
console.log('fetch error:', response.status)
|
|
57
|
+
console.log(response)
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error('Fetch error:', error)
|
|
61
|
+
}
|
|
62
|
+
return null
|
|
63
|
+
}
|
package/test/lastUpdated.test.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
const {
|
|
2
|
-
|
|
1
|
+
const {
|
|
2
|
+
setLastUpdatedTime,
|
|
3
|
+
wasLastUpdateOlderThanXSeconds,
|
|
4
|
+
} = require('../src/services/lastUpdated')
|
|
5
|
+
const { initializeTestService } = require('./initializeTests')
|
|
3
6
|
|
|
4
7
|
describe('lastUpdated', function () {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
initializeTestService()
|
|
10
|
+
})
|
|
5
11
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
test('lastUpdated', async () => {
|
|
13
|
+
setLastUpdatedTime('testKey')
|
|
14
|
+
let test1 = wasLastUpdateOlderThanXSeconds(1, 'testKey')
|
|
15
|
+
await new Promise((r) => setTimeout(r, 800))
|
|
16
|
+
let test2 = wasLastUpdateOlderThanXSeconds(1, 'testKey')
|
|
17
|
+
await new Promise((r) => setTimeout(r, 500))
|
|
18
|
+
let test3 = wasLastUpdateOlderThanXSeconds(1, 'testKey')
|
|
9
19
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
await new Promise((r) => setTimeout(r, 500));
|
|
16
|
-
let test3 = wasLastUpdateOlderThanXSeconds(1, "testKey");
|
|
17
|
-
|
|
18
|
-
expect(test1).toEqual(false);
|
|
19
|
-
expect(test2).toEqual(false);
|
|
20
|
-
expect(test3).toEqual(true);
|
|
21
|
-
});
|
|
22
|
-
});
|
|
20
|
+
expect(test1).toEqual(false)
|
|
21
|
+
expect(test2).toEqual(false)
|
|
22
|
+
expect(test3).toEqual(true)
|
|
23
|
+
})
|
|
24
|
+
})
|