@insignia-education/api-sdk-js 0.9.22 → 0.9.24

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.
Files changed (163) hide show
  1. package/.env +1 -0
  2. package/.env.test +5 -0
  3. package/.github/workflows/npm-publish-github-packages.yml +0 -0
  4. package/LICENSE +0 -0
  5. package/README.md +0 -14
  6. package/babel.config.cjs +0 -0
  7. package/coverage/clover.xml +860 -0
  8. package/coverage/coverage-final.json +33 -0
  9. package/coverage/lcov-report/Accounts.js.html +151 -0
  10. package/coverage/lcov-report/Auth.js.html +130 -0
  11. package/coverage/lcov-report/Categories.js.html +121 -0
  12. package/coverage/lcov-report/Changelogs.js.html +118 -0
  13. package/coverage/lcov-report/Client.js.html +349 -0
  14. package/coverage/lcov-report/Configs.js.html +121 -0
  15. package/coverage/lcov-report/ContactForms.js.html +121 -0
  16. package/coverage/lcov-report/ConversationalTopics.js.html +121 -0
  17. package/coverage/lcov-report/Countries.js.html +112 -0
  18. package/coverage/lcov-report/Coupons.js.html +121 -0
  19. package/coverage/lcov-report/Courses.js.html +328 -0
  20. package/coverage/lcov-report/Currencies.js.html +115 -0
  21. package/coverage/lcov-report/Files.js.html +115 -0
  22. package/coverage/lcov-report/Forums.js.html +157 -0
  23. package/coverage/lcov-report/Hashes.js.html +118 -0
  24. package/coverage/lcov-report/Insignias.js.html +121 -0
  25. package/coverage/lcov-report/Languages.js.html +121 -0
  26. package/coverage/lcov-report/MailBlacklist.js.html +118 -0
  27. package/coverage/lcov-report/Organizations.js.html +118 -0
  28. package/coverage/lcov-report/Quizzes.js.html +181 -0
  29. package/coverage/lcov-report/ShortLinks.js.html +121 -0
  30. package/coverage/lcov-report/Surveys.js.html +181 -0
  31. package/coverage/lcov-report/Tags.js.html +121 -0
  32. package/coverage/lcov-report/Taxes.js.html +121 -0
  33. package/coverage/lcov-report/Teacher.js.html +196 -0
  34. package/coverage/lcov-report/Translations.js.html +121 -0
  35. package/coverage/lcov-report/UserTypes.js.html +121 -0
  36. package/coverage/lcov-report/Users.js.html +331 -0
  37. package/coverage/lcov-report/Zoom.js.html +154 -0
  38. package/coverage/lcov-report/base.css +224 -0
  39. package/coverage/lcov-report/block-navigation.js +87 -0
  40. package/coverage/lcov-report/favicon.png +0 -0
  41. package/coverage/lcov-report/index.html +161 -0
  42. package/coverage/lcov-report/prettify.css +1 -0
  43. package/coverage/lcov-report/prettify.js +2 -0
  44. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  45. package/coverage/lcov-report/sorter.js +210 -0
  46. package/coverage/lcov-report/src/Client.js.html +349 -0
  47. package/coverage/lcov-report/src/api/index.html +116 -0
  48. package/coverage/lcov-report/src/api/index.js.html +127 -0
  49. package/coverage/lcov-report/src/api/v1/Accounts.js.html +151 -0
  50. package/coverage/lcov-report/src/api/v1/Auth.js.html +130 -0
  51. package/coverage/lcov-report/src/api/v1/Categories.js.html +121 -0
  52. package/coverage/lcov-report/src/api/v1/Changelogs.js.html +118 -0
  53. package/coverage/lcov-report/src/api/v1/Configs.js.html +121 -0
  54. package/coverage/lcov-report/src/api/v1/ContactForms.js.html +121 -0
  55. package/coverage/lcov-report/src/api/v1/ConversationalTopics.js.html +121 -0
  56. package/coverage/lcov-report/src/api/v1/Countries.js.html +112 -0
  57. package/coverage/lcov-report/src/api/v1/Coupons.js.html +121 -0
  58. package/coverage/lcov-report/src/api/v1/Courses.js.html +355 -0
  59. package/coverage/lcov-report/src/api/v1/Currencies.js.html +115 -0
  60. package/coverage/lcov-report/src/api/v1/Files.js.html +115 -0
  61. package/coverage/lcov-report/src/api/v1/Forums.js.html +157 -0
  62. package/coverage/lcov-report/src/api/v1/Hashes.js.html +118 -0
  63. package/coverage/lcov-report/src/api/v1/Insignias.js.html +121 -0
  64. package/coverage/lcov-report/src/api/v1/Languages.js.html +121 -0
  65. package/coverage/lcov-report/src/api/v1/MailBlacklist.js.html +118 -0
  66. package/coverage/lcov-report/src/api/v1/Organizations.js.html +118 -0
  67. package/coverage/lcov-report/src/api/v1/PaymentMethods.js.html +112 -0
  68. package/coverage/lcov-report/src/api/v1/Quizzes.js.html +181 -0
  69. package/coverage/lcov-report/src/api/v1/ShortLinks.js.html +121 -0
  70. package/coverage/lcov-report/src/api/v1/Surveys.js.html +181 -0
  71. package/coverage/lcov-report/src/api/v1/Tags.js.html +121 -0
  72. package/coverage/lcov-report/src/api/v1/Taxes.js.html +121 -0
  73. package/coverage/lcov-report/src/api/v1/Teacher.js.html +196 -0
  74. package/coverage/lcov-report/src/api/v1/Translations.js.html +121 -0
  75. package/coverage/lcov-report/src/api/v1/UserTypes.js.html +121 -0
  76. package/coverage/lcov-report/src/api/v1/Users.js.html +334 -0
  77. package/coverage/lcov-report/src/api/v1/Zoom.js.html +124 -0
  78. package/coverage/lcov-report/src/api/v1/index.html +521 -0
  79. package/coverage/lcov-report/src/api/v1/index.js.html +295 -0
  80. package/coverage/lcov-report/src/index.html +131 -0
  81. package/coverage/lcov-report/src/index.js.html +109 -0
  82. package/coverage/lcov-report/tests/helpers.js.html +130 -0
  83. package/coverage/lcov-report/tests/index.html +116 -0
  84. package/coverage/lcov-report/tests/integration/cookieJar.js.html +229 -0
  85. package/coverage/lcov-report/tests/integration/index.html +116 -0
  86. package/coverage/lcov.info +1606 -0
  87. package/coverage/test-report.html +980 -0
  88. package/eslint.config.mjs +10 -0
  89. package/index.js +0 -0
  90. package/jest.config.mjs +10 -0
  91. package/package.json +1 -1
  92. package/scss/Services/_notification.scss +0 -0
  93. package/scss/index.scss +0 -0
  94. package/src/Client.js +55 -2
  95. package/src/api/index.js +0 -0
  96. package/src/api/v1/Accounts.js +0 -0
  97. package/src/api/v1/Auth.js +0 -0
  98. package/src/api/v1/Categories.js +0 -0
  99. package/src/api/v1/Changelogs.js +0 -0
  100. package/src/api/v1/Configs.js +0 -0
  101. package/src/api/v1/ContactForms.js +0 -0
  102. package/src/api/v1/ConversationalTopics.js +0 -0
  103. package/src/api/v1/Countries.js +0 -0
  104. package/src/api/v1/Coupons.js +0 -0
  105. package/src/api/v1/Courses.js +10 -1
  106. package/src/api/v1/Currencies.js +0 -0
  107. package/src/api/v1/Files.js +0 -0
  108. package/src/api/v1/Forums.js +0 -0
  109. package/src/api/v1/Hashes.js +0 -0
  110. package/src/api/v1/Insignias.js +0 -0
  111. package/src/api/v1/Languages.js +0 -0
  112. package/src/api/v1/MailBlacklist.js +0 -0
  113. package/src/api/v1/Organizations.js +0 -0
  114. package/src/api/v1/PaymentMethods.js +0 -0
  115. package/src/api/v1/Quizzes.js +0 -0
  116. package/src/api/v1/ShortLinks.js +0 -0
  117. package/src/api/v1/Surveys.js +0 -0
  118. package/src/api/v1/Taxes.js +0 -0
  119. package/src/api/v1/Teacher.js +0 -0
  120. package/src/api/v1/UserTypes.js +0 -0
  121. package/src/api/v1/Users.js +0 -0
  122. package/src/api/v1/Zoom.js +0 -10
  123. package/src/api/v1/index.js +1 -4
  124. package/src/index.js +0 -0
  125. package/tests/client.test.js +64 -1
  126. package/tests/helpers.js +16 -0
  127. package/tests/integration/api/v1/accounts.test.js +37 -0
  128. package/tests/integration/api/v1/auth/login.test.js +60 -0
  129. package/tests/integration/api/v1/categories.test.js +19 -0
  130. package/tests/integration/api/v1/changelogs.test.js +21 -0
  131. package/tests/integration/api/v1/configs.test.js +20 -0
  132. package/tests/integration/api/v1/contact-forms.test.js +24 -0
  133. package/tests/integration/api/v1/conversational-topics.test.js +19 -0
  134. package/tests/integration/api/v1/countries.test.js +20 -0
  135. package/tests/integration/api/v1/coupons.test.js +26 -0
  136. package/tests/integration/api/v1/courses/by-cod.test.js +19 -0
  137. package/tests/integration/api/v1/courses/index.test.js +46 -0
  138. package/tests/integration/api/v1/currencies/index.test.js +24 -0
  139. package/tests/integration/api/v1/currencies/values.test.js +24 -0
  140. package/tests/integration/api/v1/files.test.js +25 -0
  141. package/tests/integration/api/v1/forums/index.test.js +23 -0
  142. package/tests/integration/api/v1/hashes.test.js +26 -0
  143. package/tests/integration/api/v1/insignias.test.js +19 -0
  144. package/tests/integration/api/v1/languages.test.js +28 -0
  145. package/tests/integration/api/v1/mail-blacklist.test.js +26 -0
  146. package/tests/integration/api/v1/organizations.test.js +25 -0
  147. package/tests/integration/api/v1/payment-methods/by-currencies.test.js +51 -0
  148. package/tests/integration/api/v1/quizzes/index.test.js +39 -0
  149. package/tests/integration/api/v1/short-links.test.js +27 -0
  150. package/tests/integration/api/v1/surveys/index.test.js +40 -0
  151. package/tests/integration/api/v1/taxes.test.js +20 -0
  152. package/tests/integration/api/v1/teacher/index.test.js +53 -0
  153. package/tests/integration/api/v1/user-types.test.js +19 -0
  154. package/tests/integration/api/v1/users/cash-receivers.test.js +19 -0
  155. package/tests/integration/api/v1/users/index.test.js +35 -0
  156. package/tests/integration/api/v1/zoom.test.js +24 -0
  157. package/tests/integration/loadEnv.js +0 -0
  158. package/src/api/v1/Tags.js +0 -12
  159. package/src/api/v1/Translations.js +0 -12
  160. package/tests/api/v1.test.js +0 -480
  161. package/tests/integration/api.v1.test.js +0 -125
  162. package/tests/integration/auth.test.js +0 -40
  163. package/tests/integration/cookieJar.js +0 -48
@@ -0,0 +1,980 @@
1
+ <html><head><meta charset="utf-8"/><title>API SDK Test Report</title><style type="text/css">:root {
2
+ --text-primary: #111;
3
+ --text-secondary: #4f4f4f;
4
+ --success: #006633;
5
+ --success-bright: #80ffbf;
6
+ --danger: #cc071e;
7
+ --danger-bright: #fbdfe0;
8
+ --warning: #995c00;
9
+ --warning-bright: #ffeea8;
10
+ --panel: #eee;
11
+ --border: #949494;
12
+ --disabled: #6b6b6b;
13
+ }
14
+
15
+ html,
16
+ body {
17
+ font-family: Arial, Helvetica, sans-serif;
18
+ font-size: 16px;
19
+ margin: 0;
20
+ padding: 0;
21
+ color: var(--text-primary);
22
+ }
23
+ body {
24
+ padding: 2rem 1rem;
25
+ }
26
+ .jesthtml-content {
27
+ margin: 0 auto;
28
+ max-width: 70rem;
29
+ }
30
+ header {
31
+ display: flex;
32
+ align-items: center;
33
+ }
34
+ #title {
35
+ margin: 0;
36
+ flex-grow: 1;
37
+ }
38
+ #logo {
39
+ height: 4rem;
40
+ }
41
+ #timestamp {
42
+ color: var(--text-secondary);
43
+ margin-top: 0.5rem;
44
+ }
45
+
46
+ #metadata-container {
47
+ display: flex;
48
+ flex-direction: column;
49
+ gap: 2rem;
50
+ margin-bottom: 2rem;
51
+ }
52
+
53
+ .additional-information-container {
54
+ display: flex;
55
+ flex-direction: column;
56
+ gap: 0.5rem;
57
+ color: var(--text-secondary);
58
+ }
59
+
60
+ /** SUMMARY */
61
+ #summary {
62
+ color: var(--text-primary);
63
+ display: flex;
64
+ font-family: monospace;
65
+ font-size: 1rem;
66
+ }
67
+ #summary > div {
68
+ margin-right: 0.5rem;
69
+ background: var(--panel);
70
+ padding: 1rem;
71
+ min-width: 15rem;
72
+ }
73
+ #summary > div:last-child {
74
+ margin-right: 0;
75
+ }
76
+ @media only screen and (max-width: 720px) {
77
+ #summary {
78
+ flex-direction: column;
79
+ }
80
+ #summary > div {
81
+ margin-right: 0;
82
+ margin-top: 1rem;
83
+ }
84
+ #summary > div:first-child {
85
+ margin-top: 0;
86
+ }
87
+ }
88
+
89
+ .summary-total {
90
+ font-weight: bold;
91
+ margin-bottom: 0.5rem;
92
+ }
93
+ .summary-passed {
94
+ color: var(--success);
95
+ border-left: 0.4rem solid var(--success);
96
+ padding-left: 0.5rem;
97
+ margin-bottom: 0.15rem;
98
+ }
99
+ .summary-failed,
100
+ .summary-obsolete-snapshots {
101
+ color: var(--danger);
102
+ border-left: 0.4rem solid var(--danger);
103
+ padding-left: 0.5rem;
104
+ margin-bottom: 0.15rem;
105
+ }
106
+ .summary-pending {
107
+ color: var(--warning);
108
+ border-left: 0.4rem solid var(--warning);
109
+ padding-left: 0.5rem;
110
+ margin-bottom: 0.15rem;
111
+ }
112
+ .summary-empty {
113
+ color: var(--disabled);
114
+ border-left: 0.4rem solid var(--disabled);
115
+ margin-bottom: 0.15rem;
116
+ }
117
+
118
+ .test-result {
119
+ padding: 1rem;
120
+ margin-bottom: 0.25rem;
121
+ }
122
+ .test-result:last-child {
123
+ border: 0;
124
+ }
125
+ .test-result.passed {
126
+ background-color: var(--success-bright);
127
+ color: var(--success);
128
+ }
129
+ .test-result.failed {
130
+ background-color: var(--danger-bright);
131
+ color: var(--danger);
132
+ }
133
+ .test-result.pending {
134
+ background-color: var(--warning-bright);
135
+ color: var(--warning);
136
+ }
137
+
138
+ .test-info {
139
+ display: flex;
140
+ justify-content: space-between;
141
+ }
142
+ .test-suitename {
143
+ width: 20%;
144
+ text-align: left;
145
+ font-weight: bold;
146
+ word-break: break-word;
147
+ }
148
+ .test-title {
149
+ width: 40%;
150
+ text-align: left;
151
+ font-style: italic;
152
+ }
153
+ .test-status {
154
+ width: 20%;
155
+ text-align: right;
156
+ }
157
+ .test-duration {
158
+ width: 10%;
159
+ text-align: right;
160
+ font-size: 0.85rem;
161
+ }
162
+
163
+ .failureMessages {
164
+ padding: 0 1rem;
165
+ margin-top: 1rem;
166
+ border-top: 1px dashed var(--danger);
167
+ }
168
+ .failureMessages.suiteFailure {
169
+ border-top: none;
170
+ }
171
+ .failureMsg {
172
+ white-space: pre-wrap;
173
+ white-space: -moz-pre-wrap;
174
+ white-space: -pre-wrap;
175
+ white-space: -o-pre-wrap;
176
+ word-wrap: break-word;
177
+ }
178
+
179
+ .suite-container {
180
+ margin-bottom: 1rem;
181
+ }
182
+ .suite-info {
183
+ padding: 1rem;
184
+ background-color: var(--panel);
185
+ color: var(--text-secondary);
186
+ border: 0.15rem solid;
187
+ border-color: var(--panel);
188
+ display: flex;
189
+ align-items: center;
190
+ margin-bottom: 0.25rem;
191
+ }
192
+ .suite-info:hover {
193
+ border-color: var(--border);
194
+ cursor: pointer;
195
+ }
196
+ .suite-info .suite-path {
197
+ word-break: break-all;
198
+ flex-grow: 1;
199
+ font-family: monospace;
200
+ font-size: 1rem;
201
+ }
202
+ .suite-info .suite-time {
203
+ margin-left: 1rem;
204
+ padding: 0.2rem 0.3rem;
205
+ font-size: 0.85rem;
206
+ }
207
+ .suite-info .suite-time.warn {
208
+ background-color: var(--danger);
209
+ color: #fff;
210
+ }
211
+ .suite-info:before {
212
+ content: "\2303";
213
+ display: inline-block;
214
+ margin-right: 1rem;
215
+ transform: rotate(180deg) translateY(0.15rem);
216
+ }
217
+ .suite-container[open] .suite-info:before {
218
+ transform: rotate(0deg) translateY(0.15rem);
219
+ }
220
+
221
+ /* CONSOLE LOGS */
222
+ .suite-consolelog {
223
+ margin-bottom: 0.25rem;
224
+ padding: 1rem;
225
+ background-color: var(--panel);
226
+ }
227
+ .suite-consolelog-header {
228
+ font-weight: bold;
229
+ }
230
+ .suite-consolelog-item {
231
+ padding: 0.5rem;
232
+ }
233
+ .suite-consolelog-item pre {
234
+ margin: 0.5rem 0;
235
+ white-space: pre-wrap;
236
+ white-space: -moz-pre-wrap;
237
+ white-space: -pre-wrap;
238
+ white-space: -o-pre-wrap;
239
+ word-wrap: break-word;
240
+ }
241
+ .suite-consolelog-item-origin {
242
+ color: var(--text-secondary);
243
+ font-weight: bold;
244
+ }
245
+ .suite-consolelog-item-message {
246
+ color: var(--text-primary);
247
+ font-size: 1rem;
248
+ padding: 0 0.5rem;
249
+ }
250
+
251
+ /* OBSOLETE SNAPSHOTS */
252
+ .suite-obsolete-snapshots {
253
+ margin-bottom: 0.25rem;
254
+ padding: 1rem;
255
+ background-color: var(--danger-bright);
256
+ color: var(--danger);
257
+ }
258
+ .suite-obsolete-snapshots-header {
259
+ font-weight: bold;
260
+ }
261
+ .suite-obsolete-snapshots-item {
262
+ padding: 0.5rem;
263
+ }
264
+ .suite-obsolete-snapshots-item pre {
265
+ margin: 0.5rem 0;
266
+ white-space: pre-wrap;
267
+ white-space: -moz-pre-wrap;
268
+ white-space: -pre-wrap;
269
+ white-space: -o-pre-wrap;
270
+ word-wrap: break-word;
271
+ }
272
+ .suite-obsolete-snapshots-item-message {
273
+ color: var(--text-primary);
274
+ font-size: 1rem;
275
+ padding: 0 0.5rem;
276
+ }
277
+ </style></head><body><main class="jesthtml-content"><header><h1 id="title">API SDK Test Report</h1></header><section id="metadata-container"><div id="timestamp">Started: 2026-05-19 18:21:55</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (31)</div><div class="summary-passed ">13 passed</div><div class="summary-failed ">18 failed</div><div class="summary-pending summary-empty">0 pending</div></div><div id="test-summary"><div class="summary-total">Tests (65)</div><div class="summary-passed ">41 passed</div><div class="summary-failed ">24 failed</div><div class="summary-pending summary-empty">0 pending</div></div></div></section><details id="suite-1" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/short-links.test.js</div><div class="suite-time">4.119s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/short-links</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.423s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
278
+ at JSON.parse (&lt;anonymous&gt;)
279
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
280
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
281
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
282
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/short-links.test.js:13:9)</pre></div></div></div></details><details id="suite-2" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/mail-blacklist.test.js</div><div class="suite-time">4.137s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/mail-blacklist</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.44s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBeDefined()
283
+
284
+ Received: undefined
285
+ at toBeDefined (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/mail-blacklist.test.js:18:41)
286
+ at Array.forEach (&lt;anonymous&gt;)
287
+ at forEach (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/mail-blacklist.test.js:17:26)
288
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
289
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/mail-blacklist.test.js:13:9)</pre></div></div></div></details><details id="suite-3" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/changelogs.test.js</div><div class="suite-time">4.171s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/changelogs</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.419s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
290
+ at JSON.parse (&lt;anonymous&gt;)
291
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
292
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
293
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
294
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/changelogs.test.js:10:9)</pre></div></div></div></details><details id="suite-4" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/quizzes/index.test.js</div><div class="suite-time warn">7.15s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/quizzes</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">2.944s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12441 (line 271 column 2)
295
+ at JSON.parse (&lt;anonymous&gt;)
296
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
297
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
298
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
299
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/quizzes/index.test.js:9:9)</pre></div></div><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/quizzes</div><div class="test-title">get questions | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.536s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12441 (line 271 column 2)
300
+ at JSON.parse (&lt;anonymous&gt;)
301
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
302
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
303
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
304
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/quizzes/index.test.js:25:25)</pre></div></div></div></details><details id="suite-5" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/teacher/index.test.js</div><div class="suite-time warn">7.688s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/teacher/absences</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.448s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12441 (line 271 column 2)
305
+ at JSON.parse (&lt;anonymous&gt;)
306
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
307
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
308
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
309
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/teacher/index.test.js:10:9)</pre></div></div><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/teacher/config-sets</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.513s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12441 (line 271 column 2)
310
+ at JSON.parse (&lt;anonymous&gt;)
311
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
312
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
313
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
314
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/teacher/index.test.js:26:9)</pre></div></div><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/teacher/configs</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration"> </div></div><div class="failureMessages"> <pre class="failureMsg">ReferenceError: login is not defined
315
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/teacher/index.test.js:41:9)
316
+ at Promise.finally.completed (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:1557:28)
317
+ at new Promise (&lt;anonymous&gt;)
318
+ at callAsyncCircusFn (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:1497:10)
319
+ at _callCircusTest (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:1007:40)
320
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
321
+ at _runTest (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:947:3)
322
+ at /Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:849:7
323
+ at _runTestsForDescribeBlock (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:862:11)
324
+ at _runTestsForDescribeBlock (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:857:11)
325
+ at run (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:761:3)
326
+ at runAndTransformResultsToJestFormat (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/jestAdapterInit.js:1918:21)
327
+ at jestAdapter (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-circus/build/runner.js:101:19)
328
+ at runTestInternal (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-runner/build/testWorker.js:275:16)
329
+ at runTest (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-runner/build/testWorker.js:343:7)
330
+ at Object.worker (/Users/roquendo/code/insignia-education/api-sdk-js/node_modules/jest-runner/build/testWorker.js:497:12)</pre></div></div></div></details><details id="suite-6" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/organizations.test.js</div><div class="suite-time">3.616s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/organizations</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.473s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBeDefined()
331
+
332
+ Received: undefined
333
+ at toBeDefined (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/organizations.test.js:18:39)
334
+ at Array.forEach (&lt;anonymous&gt;)
335
+ at forEach (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/organizations.test.js:17:26)
336
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
337
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/organizations.test.js:13:9)</pre></div></div></div></details><details id="suite-7" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/hashes.test.js</div><div class="suite-time">3.638s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/hashes</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.477s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBeDefined()
338
+
339
+ Received: undefined
340
+ at toBeDefined (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/hashes.test.js:18:40)
341
+ at Array.forEach (&lt;anonymous&gt;)
342
+ at forEach (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/hashes.test.js:17:26)
343
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
344
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/hashes.test.js:13:9)</pre></div></div></div></details><details id="suite-8" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/zoom.test.js</div><div class="suite-time">3.599s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/zoom/meetings</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.447s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12436 (line 271 column 2)
345
+ at JSON.parse (&lt;anonymous&gt;)
346
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
347
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
348
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
349
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/zoom.test.js:13:9)</pre></div></div></div></details><details id="suite-9" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/accounts.test.js</div><div class="suite-time warn">8.377s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/accounts</div><div class="test-title">get | unauthenticated</div><div class="test-status">failed</div><div class="test-duration">0.589s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
350
+ at JSON.parse (&lt;anonymous&gt;)
351
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
352
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
353
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
354
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/accounts.test.js:9:9)</pre></div></div><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/accounts</div><div class="test-title">get | authenticated but other type</div><div class="test-status">failed</div><div class="test-duration">3.444s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
355
+ at JSON.parse (&lt;anonymous&gt;)
356
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
357
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
358
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
359
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/accounts.test.js:17:9)</pre></div></div><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/accounts</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.613s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
360
+ at JSON.parse (&lt;anonymous&gt;)
361
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
362
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
363
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
364
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/accounts.test.js:26:9)</pre></div></div></div></details><details id="suite-10" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/index.test.js</div><div class="suite-time warn">8.415s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/users</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">3.421s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBeDefined()
365
+
366
+ Received: undefined
367
+ at toBeDefined (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/index.test.js:15:40)
368
+ at Array.forEach (&lt;anonymous&gt;)
369
+ at forEach (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/index.test.js:14:26)
370
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
371
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/index.test.js:10:9)</pre></div></div><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/users</div><div class="test-title">get by id | authenticated</div><div class="test-status">failed</div><div class="test-duration">4.234s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBe(expected) // Object.is equality
372
+
373
+ Expected: undefined
374
+ Received: 1
375
+ at toBe (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/index.test.js:30:40)
376
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
377
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/index.test.js:28:9)</pre></div></div></div></details><details id="suite-11" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/taxes.test.js</div><div class="suite-time">1.668s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/taxes</div><div class="test-title">get</div><div class="test-status">failed</div><div class="test-duration">1.499s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
378
+ at JSON.parse (&lt;anonymous&gt;)
379
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
380
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
381
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
382
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/taxes.test.js:7:9)</pre></div></div></div></details><details id="suite-12" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/user-types.test.js</div><div class="suite-time">1.643s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/user-types</div><div class="test-title">get</div><div class="test-status">failed</div><div class="test-duration">1.492s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12436 (line 271 column 2)
383
+ at JSON.parse (&lt;anonymous&gt;)
384
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
385
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
386
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
387
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/user-types.test.js:7:9)</pre></div></div></div></details><details id="suite-13" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/files.test.js</div><div class="suite-time">2.316s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/files</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">2.132s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12441 (line 271 column 2)
388
+ at JSON.parse (&lt;anonymous&gt;)
389
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
390
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
391
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
392
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/files.test.js:13:9)</pre></div></div></div></details><details id="suite-14" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/configs.test.js</div><div class="suite-time">1.072s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/configs</div><div class="test-title">get</div><div class="test-status">failed</div><div class="test-duration">0.903s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBeDefined()
393
+
394
+ Received: undefined
395
+ at toBeDefined (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/configs.test.js:14:42)
396
+ at Array.forEach (&lt;anonymous&gt;)
397
+ at forEach (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/configs.test.js:13:26)
398
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
399
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/configs.test.js:9:9)</pre></div></div></div></details><details id="suite-15" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/categories.test.js</div><div class="suite-time">1.092s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/categories</div><div class="test-title">get</div><div class="test-status">failed</div><div class="test-duration">0.908s</div></div><div class="failureMessages"> <pre class="failureMsg">Error: expect(received).toBeDefined()
400
+
401
+ Received: undefined
402
+ at toBeDefined (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/categories.test.js:12:44)
403
+ at Array.forEach (&lt;anonymous&gt;)
404
+ at forEach (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/categories.test.js:11:26)
405
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
406
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/categories.test.js:7:9)</pre></div></div></div></details><details id="suite-16" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/contact-forms.test.js</div><div class="suite-time">1.986s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/contact-forms</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">1.673s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
407
+ at JSON.parse (&lt;anonymous&gt;)
408
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
409
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
410
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
411
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/contact-forms.test.js:11:9)</pre></div></div></div></details><details id="suite-17" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/coupons.test.js</div><div class="suite-time">1.937s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/coupons</div><div class="test-title">get | authenticated</div><div class="test-status">failed</div><div class="test-duration">1.675s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12431 (line 271 column 2)
412
+ at JSON.parse (&lt;anonymous&gt;)
413
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
414
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
415
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
416
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/coupons.test.js:13:9)</pre></div></div></div></details><details id="suite-18" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/conversational-topics.test.js</div><div class="suite-time">0.48s</div></summary><div class="suite-tests"><div class="test-result failed"><div class="test-info"><div class="test-suitename">api/v1/conversational-topics</div><div class="test-title">get</div><div class="test-status">failed</div><div class="test-duration">0.204s</div></div><div class="failureMessages"> <pre class="failureMsg">SyntaxError: Unexpected non-whitespace character after JSON at position 12434 (line 271 column 2)
417
+ at JSON.parse (&lt;anonymous&gt;)
418
+ at InsigniaApiV1.parse (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:62:50)
419
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
420
+ at InsigniaApiV1.#request (/Users/roquendo/code/insignia-education/api-sdk-js/src/Client.js:79:22)
421
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/conversational-topics.test.js:7:9)</pre></div></div></div></details><details id="suite-19" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/currencies/values.test.js</div><div class="suite-time">0.918s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/currencies/values</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.777s</div></div></div></div></details><details id="suite-20" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/languages.test.js</div><div class="suite-time">0.937s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/languages</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.789s</div></div></div></div></details><details id="suite-21" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/payment-methods/by-currencies.test.js</div><div class="suite-time">1.927s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/payment-methods/by-currency/1</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.749s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">users/cash-receivers</div><div class="test-title">get By currency id() returns a list</div><div class="test-status">passed</div><div class="test-duration">0.931s</div></div></div></div></details><details id="suite-22" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/courses/by-cod.test.js</div><div class="suite-time">1.889s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/courses/cod/:cod</div><div class="test-title">get by cod | returns matching course</div><div class="test-status">passed</div><div class="test-duration">1.675s</div></div></div></div></details><details id="suite-23" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/users/cash-receivers.test.js</div><div class="suite-time">0.9s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/users/cash-receivers</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.777s</div></div></div></div></details><details id="suite-24" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/insignias.test.js</div><div class="suite-time">0.914s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/insignias</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.79s</div></div></div></div></details><details id="suite-25" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/client.test.js</div><div class="suite-time">0.215s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">uses explicit baseUrl when provided</div><div class="test-status">passed</div><div class="test-duration">0.002s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">strips trailing slash from explicit baseUrl</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">uses INSIGNIA_EDUCATION_API_BASE_URL env var when baseUrl is null</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">falls back to https://insigniaeducation.com when baseUrl is null and env var is not set</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">falls back to default when constructed with no arguments</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">explicit baseUrl takes precedence over env var</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">baseUrl resolution</div><div class="test-title">falls back to default when process is undefined</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">get() sends GET with no body</div><div class="test-status">passed</div><div class="test-duration">0.002s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">post() sends POST with body</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">post() sends POST with no body when not provided</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">put() sends PUT with body</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">put() sends PUT with no body when not provided</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">patch() sends PATCH with body</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">patch() sends PATCH with no body when not provided</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">del() sends DELETE with no body</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">JSON headers are always sent</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">credentials is always include</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">stores response cookies and sends them on later requests in Node</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">returns parsed JSON from response</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">returns null for empty response text</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">returns null for no-content responses</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">HTTP methods</div><div class="test-title">returns null when json parsing fails because the response is empty</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div></div></details><details id="suite-26" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/forums/index.test.js</div><div class="suite-time">1.713s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/forums</div><div class="test-title">get | authenticated</div><div class="test-status">passed</div><div class="test-duration">1.575s</div></div></div></div></details><details id="suite-27" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/auth/login.test.js</div><div class="suite-time">0.212s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/auth/login</div><div class="test-title">POST | failure | no email validation</div><div class="test-status">passed</div><div class="test-duration">0.002s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/auth/login</div><div class="test-title">POST | failure | no password validation</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/auth/login</div><div class="test-title">POST | success</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/auth/login</div><div class="test-title">POST | double login</div><div class="test-status">passed</div><div class="test-duration"> </div></div></div></div></details><details id="suite-28" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/countries.test.js</div><div class="suite-time">0.193s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/countries</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.002s</div></div></div></div></details><details id="suite-29" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/currencies/index.test.js</div><div class="suite-time">0.176s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/currencies</div><div class="test-title">get</div><div class="test-status">passed</div><div class="test-duration">0.001s</div></div></div></div></details><details id="suite-30" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/surveys/index.test.js</div><div class="suite-time">3.351s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/surveys</div><div class="test-title">get | authenticated</div><div class="test-status">passed</div><div class="test-duration">1.452s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/surveys</div><div class="test-title">get questions | authenticated</div><div class="test-status">passed</div><div class="test-duration">1.654s</div></div></div></div></details><details id="suite-31" class="suite-container" open=""><summary class="suite-info"><div class="suite-path">/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/courses/index.test.js</div><div class="suite-time">3.395s</div></summary><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/courses</div><div class="test-title">get | returns paginated list</div><div class="test-status">passed</div><div class="test-duration">0.754s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/courses</div><div class="test-title">get | page 2</div><div class="test-status">passed</div><div class="test-duration">0.762s</div></div></div><div class="test-result passed"><div class="test-info"><div class="test-suitename">api/v1/courses</div><div class="test-title">get by id | returns single course</div><div class="test-status">passed</div><div class="test-duration">1.602s</div></div></div></div><div class="suite-consolelog"><div class="suite-consolelog-header">Console Log</div><div class="suite-consolelog-item"><pre class="suite-consolelog-item-origin"> at log (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/courses/index.test.js:11:25)
422
+ at processTicksAndRejections (node:internal/process/task_queues:104:5)
423
+ at Object.&lt;anonymous&gt; (/Users/roquendo/code/insignia-education/api-sdk-js/tests/integration/api/v1/courses/index.test.js:9:9)</pre><pre class="suite-consolelog-item-message">{
424
+ current_page: 1,
425
+ data: [
426
+ {
427
+ id: 1,
428
+ category_id: 1,
429
+ type_id: 2,
430
+ cod: 'english-1',
431
+ user_id: 3,
432
+ prerequisite: null,
433
+ title: 'American English Libro 1',
434
+ price: '55.00',
435
+ enabled: 1,
436
+ image: 'https://d2q322qw6fiitu.cloudfront.net/portadasnuevas/11.webp',
437
+ youtube_url: 'https://www.youtube.com/watch?v=9VW_UGm7aK8h',
438
+ description: '&lt;blockquote&gt;&lt;h2&gt;Fundación Universidad de Carabobo - 39 años de experiencia &lt;/h2&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;cite&gt;¿Qué incluye este curso?&lt;/cite&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Encuentro Interactivo con el Facilitador: clases en vivo, aclaras dudas y realizas prácticas de speaking.&lt;/li&gt;&lt;li&gt;Clases en vivo ilimitadas &lt;/li&gt;&lt;li&gt;Horario: Lunes a Domingo. &lt;/li&gt;&lt;li&gt;Asistencia en grupo de Telegram. &lt;/li&gt;&lt;li&gt;Explicación gramatical. &lt;/li&gt;&lt;li&gt;Vídeos: Gramática y vocabulario.&lt;/li&gt;&lt;li&gt;Audios. &lt;/li&gt;&lt;li&gt;Ejercicios prácticos. &lt;/li&gt;&lt;li&gt;Libro: American English by FundaUC.&lt;/li&gt;&lt;li&gt;Guías de Insignia Education.&lt;/li&gt;&lt;li&gt;Evaluaciones prácticas. &lt;/li&gt;&lt;li&gt;Formativa: Permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/li&gt;&lt;li&gt;Sumativa: 1 examen oral y 1 examen escrito. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;El curso de inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo. &lt;/p&gt;',
439
+ current_chat_id: '-5189469758',
440
+ insignia_id: 2,
441
+ duration: 28,
442
+ certificate_exam_enabled: 1,
443
+ certificate_exam_attempts: 1,
444
+ certificate_exam_price: '5.00',
445
+ can_move_between_dates: 0,
446
+ starts_at: '2026-03-02 00:00:00',
447
+ ends_at: '2026-03-29 23:59:59',
448
+ repurchasable: 1,
449
+ can_see_recordings: 0,
450
+ has_class: 1,
451
+ next_starts_at: '2021-11-01 00:00:00',
452
+ next_ends_at: '2021-11-28 00:00:00',
453
+ created_at: '2020-11-30T13:01:16.000000Z',
454
+ updated_at: '2026-03-02T08:41:29.000000Z',
455
+ deleted_at: null,
456
+ levels: [Array],
457
+ sessions: [],
458
+ owner: {}
459
+ },
460
+ {
461
+ id: 2,
462
+ category_id: 1,
463
+ type_id: 2,
464
+ cod: 'english-2',
465
+ user_id: 3,
466
+ prerequisite: 1,
467
+ title: 'American English Libro 2',
468
+ price: '55.00',
469
+ enabled: 1,
470
+ image: 'https://d2q322qw6fiitu.cloudfront.net/portadasnuevas/21.webp',
471
+ youtube_url: null,
472
+ description: '&lt;p&gt;&lt;strong&gt;Fundación Universidad de Carabobo - 38 años de experiencia &lt;/strong&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;¿Qué incluye este curso?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Encuentro Interactivo con el Facilitador: aclaras dudas y realizas prácticas de speaking.&lt;/li&gt;&lt;li&gt;Explicación gramatical. &lt;/li&gt;&lt;li&gt;Vídeos: Gramática, diálogos y vocabulario.&lt;/li&gt;&lt;li&gt;Audios. &lt;/li&gt;&lt;li&gt;Ejercicios prácticos. &lt;/li&gt;&lt;li&gt;Libro: American English by FundaUC.&lt;/li&gt;&lt;li&gt;Evaluaciones prácticas. &lt;/li&gt;&lt;li&gt;Formativa: permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/li&gt;&lt;li&gt;Grupo de chat en telegram.&lt;/li&gt;&lt;li&gt;Sumativa: Tiene la siguiente ponderación: 02 tests de 20 puntos, 01 tests de 25 puntos y 01 examen final, oral y escrito: 35 puntos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;El curso de inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo.&lt;/strong&gt;&lt;/p&gt;',
473
+ current_chat_id: '-5021895650',
474
+ insignia_id: 2,
475
+ duration: 28,
476
+ certificate_exam_enabled: 1,
477
+ certificate_exam_attempts: 1,
478
+ certificate_exam_price: '6.00',
479
+ can_move_between_dates: 1,
480
+ starts_at: '2026-03-09 00:00:00',
481
+ ends_at: '2026-04-05 23:59:59',
482
+ repurchasable: 1,
483
+ can_see_recordings: 0,
484
+ has_class: 1,
485
+ next_starts_at: '2021-11-08 00:00:00',
486
+ next_ends_at: '2021-12-05 00:00:00',
487
+ created_at: '2021-02-09T17:07:21.000000Z',
488
+ updated_at: '2026-03-25T00:07:03.000000Z',
489
+ deleted_at: null,
490
+ levels: [Array],
491
+ sessions: [],
492
+ owner: {}
493
+ },
494
+ {
495
+ id: 5,
496
+ category_id: 1,
497
+ type_id: 2,
498
+ cod: 'english-3',
499
+ user_id: 3,
500
+ prerequisite: 2,
501
+ title: 'American English Libro 3',
502
+ price: '55.00',
503
+ enabled: 1,
504
+ image: 'https://d2q322qw6fiitu.cloudfront.net/portadasnuevas/31.webp',
505
+ youtube_url: null,
506
+ description: '&lt;h2 style=\\"font-style:italic\\"&gt;&lt;strong&gt;Fundación Universidad de Carabobo - 39 años de experiencia &lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;¿Qué incluye este curso?&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Encuentro Interactivo con el Facilitador: aclaras dudas y realizas prácticas de speaking.&lt;/li&gt;&lt;li&gt;Explicación gramatical. &lt;/li&gt;&lt;li&gt;Vídeos: Gramática, diálogos y vocabulario.&lt;/li&gt;&lt;li&gt;Audios. &lt;/li&gt;&lt;li&gt;Ejercicios prácticos. &lt;/li&gt;&lt;li&gt;Libro: American English by FundaUC.&lt;/li&gt;&lt;li&gt;Evaluaciones prácticas. &lt;/li&gt;&lt;li&gt;Formativa: permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/li&gt;&lt;li&gt;Grupo de chat en telegram.&lt;/li&gt;&lt;li&gt;Sumativa: Tiene la siguiente ponderación: 02 tests de 20 puntos, 01 tests de 25 puntos y 01 examen final, oral y escrito: 35 puntos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;El curso de inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo.&lt;/strong&gt;&lt;/p&gt;',
507
+ current_chat_id: '-5022090905',
508
+ insignia_id: 2,
509
+ duration: 28,
510
+ certificate_exam_enabled: 1,
511
+ certificate_exam_attempts: 1,
512
+ certificate_exam_price: '5.00',
513
+ can_move_between_dates: 1,
514
+ starts_at: '2026-03-09 00:00:00',
515
+ ends_at: '2026-04-05 23:59:59',
516
+ repurchasable: 1,
517
+ can_see_recordings: 0,
518
+ has_class: 1,
519
+ next_starts_at: '2021-10-18 00:00:00',
520
+ next_ends_at: '2021-11-14 00:00:00',
521
+ created_at: '2021-03-22T21:34:02.000000Z',
522
+ updated_at: '2026-03-09T09:23:42.000000Z',
523
+ deleted_at: null,
524
+ levels: [Array],
525
+ sessions: [],
526
+ owner: {}
527
+ },
528
+ {
529
+ id: 6,
530
+ category_id: 1,
531
+ type_id: 2,
532
+ cod: 'english-4',
533
+ user_id: 3,
534
+ prerequisite: 5,
535
+ title: 'American English Libro 4',
536
+ price: '55.00',
537
+ enabled: 1,
538
+ image: 'https://d2q322qw6fiitu.cloudfront.net/portadasnuevas/41.webp',
539
+ youtube_url: null,
540
+ description: '&lt;blockquote&gt;&lt;p&gt;Fundación Universidad de Carabobo - 38 años de experiencia &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;cite&gt;¿Qué incluye este curso?&lt;/cite&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Encuentro Interactivo con el Facilitador: aclaras dudas y realizas prácticas de speaking.&lt;/li&gt;&lt;li&gt;Explicación gramatical. &lt;/li&gt;&lt;li&gt;Vídeos: Gramática, diálogos y vocabulario.&lt;/li&gt;&lt;li&gt;Audios. &lt;/li&gt;&lt;li&gt;Ejercicios prácticos. &lt;/li&gt;&lt;li&gt;Libro: American English by FundaUC.&lt;/li&gt;&lt;li&gt;Evaluaciones prácticas. &lt;/li&gt;&lt;li&gt;Formativa: permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/li&gt;&lt;li&gt;Sumativa: Tiene la siguiente ponderación: 02 tests de 20 puntos, 01 tests de 25 puntos y 01 examen final, oral y escrito: 35 puntos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;El curso de inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo. &lt;/p&gt;',
541
+ current_chat_id: '-5253827538',
542
+ insignia_id: 2,
543
+ duration: 28,
544
+ certificate_exam_enabled: 1,
545
+ certificate_exam_attempts: 1,
546
+ certificate_exam_price: '5.00',
547
+ can_move_between_dates: 1,
548
+ starts_at: '2026-03-16 00:00:00',
549
+ ends_at: '2026-04-12 23:59:59',
550
+ repurchasable: 1,
551
+ can_see_recordings: 0,
552
+ has_class: 1,
553
+ next_starts_at: '2021-10-25 00:00:00',
554
+ next_ends_at: '2021-11-21 00:00:00',
555
+ created_at: '2021-05-04T17:42:53.000000Z',
556
+ updated_at: '2026-03-16T09:06:33.000000Z',
557
+ deleted_at: null,
558
+ levels: [Array],
559
+ sessions: [],
560
+ owner: {}
561
+ },
562
+ {
563
+ id: 7,
564
+ category_id: 1,
565
+ type_id: 2,
566
+ cod: 'english-5',
567
+ user_id: 3,
568
+ prerequisite: null,
569
+ title: 'American English Book 5',
570
+ price: '55.00',
571
+ enabled: 1,
572
+ image: 'https://d2q322qw6fiitu.cloudfront.net/portadasnuevas/51.webp',
573
+ youtube_url: null,
574
+ description: '&lt;h2&gt;&lt;strong&gt;Fundación Universidad de Carabobo - 39 años de experiencia &lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;¿Qué incluye este curso?&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Encuentro Interactivo con el Facilitador: aclaras dudas y realizas prácticas de speaking.&lt;/li&gt;&lt;li&gt;Explicación gramatical. &lt;/li&gt;&lt;li&gt;Vídeos: Gramática, diálogos y vocabulario.&lt;/li&gt;&lt;li&gt;Audios. &lt;/li&gt;&lt;li&gt;Ejercicios prácticos. &lt;/li&gt;&lt;li&gt;Libro: American English by FundaUC.&lt;/li&gt;&lt;li&gt;Evaluaciones prácticas. &lt;/li&gt;&lt;li&gt;Formativa: permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/li&gt;&lt;li&gt;Sumativa: Tiene la siguiente ponderación: 02 tests de 20 puntos, 01 tests de 25 puntos y 01 examen final, oral y escrito: 35 puntos.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;El curso de inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo. &lt;/strong&gt;&lt;/p&gt;',
575
+ current_chat_id: '-5149120679',
576
+ insignia_id: 2,
577
+ duration: 28,
578
+ certificate_exam_enabled: 1,
579
+ certificate_exam_attempts: 1,
580
+ certificate_exam_price: '5.00',
581
+ can_move_between_dates: 1,
582
+ starts_at: '2026-03-23 00:00:00',
583
+ ends_at: '2026-04-19 23:59:59',
584
+ repurchasable: 1,
585
+ can_see_recordings: 0,
586
+ has_class: 1,
587
+ next_starts_at: '2021-11-01 00:00:00',
588
+ next_ends_at: '2021-11-28 00:00:00',
589
+ created_at: '2021-06-09T15:42:31.000000Z',
590
+ updated_at: '2026-03-24T00:07:03.000000Z',
591
+ deleted_at: null,
592
+ levels: [Array],
593
+ sessions: [],
594
+ owner: {}
595
+ },
596
+ {
597
+ id: 9,
598
+ category_id: 1,
599
+ type_id: 2,
600
+ cod: 'english-6',
601
+ user_id: 3,
602
+ prerequisite: 7,
603
+ title: 'American English Libro 6',
604
+ price: '55.00',
605
+ enabled: 1,
606
+ image: 'https://d327g21am9vl3q.cloudfront.net/funda_uc/english-6/newbook6/chicagowinds/portadas-011.png',
607
+ youtube_url: null,
608
+ description: '&lt;p&gt;&lt;strong&gt;&lt;big&gt;Fundación Universidad de Carabobo - 39 años de experiencia &lt;br /&gt;¿Qué incluye este curso?&lt;/big&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;h3&gt;Encuentro Interactivo con el Facilitador: aclaras dudas y realizas prácticas de speaking.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Explicación gramatical. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Vídeos: Gramática, diálogos y vocabulario.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Audios. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Ejercicios prácticos. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Libro: American English by FundaUC.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Evaluaciones prácticas. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Formativa: permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Sumativa: Tiene la siguiente ponderación: 02 tests de 20 puntos, 01 tests de 25 puntos y 01 examen final, oral y escrito: 35 puntos.&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;strong&gt;El curso de inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo. &lt;/strong&gt;&lt;/h3&gt;',
609
+ current_chat_id: '-5015201651',
610
+ insignia_id: 2,
611
+ duration: 28,
612
+ certificate_exam_enabled: 1,
613
+ certificate_exam_attempts: 1,
614
+ certificate_exam_price: '5.00',
615
+ can_move_between_dates: 1,
616
+ starts_at: '2026-03-23 00:00:00',
617
+ ends_at: '2026-04-19 23:59:59',
618
+ repurchasable: 1,
619
+ can_see_recordings: 0,
620
+ has_class: 1,
621
+ next_starts_at: '2021-11-01 00:00:00',
622
+ next_ends_at: '2021-11-28 00:00:00',
623
+ created_at: '2021-07-12T15:16:53.000000Z',
624
+ updated_at: '2026-03-23T07:50:46.000000Z',
625
+ deleted_at: null,
626
+ levels: [Array],
627
+ sessions: [],
628
+ owner: {}
629
+ },
630
+ {
631
+ id: 10,
632
+ category_id: 1,
633
+ type_id: 2,
634
+ cod: 'english-7',
635
+ user_id: 3,
636
+ prerequisite: 9,
637
+ title: 'American English Libro 7',
638
+ price: '55.00',
639
+ enabled: 1,
640
+ image: 'https://d327g21am9vl3q.cloudfront.net/funda_uc/english-7/newbook7/portadas-02.png',
641
+ youtube_url: null,
642
+ description: '&lt;p&gt;Placeholder text&lt;/p&gt;',
643
+ current_chat_id: '-5286056353',
644
+ insignia_id: 2,
645
+ duration: 28,
646
+ certificate_exam_enabled: 1,
647
+ certificate_exam_attempts: 1,
648
+ certificate_exam_price: '5.00',
649
+ can_move_between_dates: 0,
650
+ starts_at: '2026-03-30 00:00:00',
651
+ ends_at: '2026-04-26 23:59:59',
652
+ repurchasable: 1,
653
+ can_see_recordings: 0,
654
+ has_class: 1,
655
+ next_starts_at: '2021-09-27 00:00:00',
656
+ next_ends_at: '2021-10-24 00:00:00',
657
+ created_at: '2021-07-12T15:27:03.000000Z',
658
+ updated_at: '2026-03-26T11:02:19.000000Z',
659
+ deleted_at: null,
660
+ levels: [Array],
661
+ sessions: [],
662
+ owner: {}
663
+ },
664
+ {
665
+ id: 11,
666
+ category_id: 1,
667
+ type_id: 2,
668
+ cod: 'english-8',
669
+ user_id: 3,
670
+ prerequisite: 10,
671
+ title: 'American English Libro 8',
672
+ price: '55.00',
673
+ enabled: 1,
674
+ image: 'https://d327g21am9vl3q.cloudfront.net/insignia/portadas/portadascw-03.png',
675
+ youtube_url: null,
676
+ description: '&lt;p&gt;Placeholder text&lt;/p&gt;',
677
+ current_chat_id: '-5212219253',
678
+ insignia_id: 2,
679
+ duration: 28,
680
+ certificate_exam_enabled: 1,
681
+ certificate_exam_attempts: 1,
682
+ certificate_exam_price: '5.00',
683
+ can_move_between_dates: 1,
684
+ starts_at: '2026-03-02 00:00:00',
685
+ ends_at: '2026-03-29 23:59:59',
686
+ repurchasable: 1,
687
+ can_see_recordings: 0,
688
+ has_class: 1,
689
+ next_starts_at: null,
690
+ next_ends_at: null,
691
+ created_at: '2021-07-12T15:31:07.000000Z',
692
+ updated_at: '2026-03-02T08:41:30.000000Z',
693
+ deleted_at: null,
694
+ levels: [Array],
695
+ sessions: [],
696
+ owner: {}
697
+ },
698
+ {
699
+ id: 12,
700
+ category_id: 1,
701
+ type_id: 2,
702
+ cod: 'english-9',
703
+ user_id: 3,
704
+ prerequisite: 11,
705
+ title: 'American English Libro 9',
706
+ price: '55.00',
707
+ enabled: 1,
708
+ image: 'https://d327g21am9vl3q.cloudfront.net/insignia/portadas/portadas-04.png',
709
+ youtube_url: null,
710
+ description: '&lt;p&gt;Placeholder text&lt;/p&gt;',
711
+ current_chat_id: '-5034912646',
712
+ insignia_id: 2,
713
+ duration: 28,
714
+ certificate_exam_enabled: 1,
715
+ certificate_exam_attempts: 1,
716
+ certificate_exam_price: '5.00',
717
+ can_move_between_dates: 1,
718
+ starts_at: '2026-03-09 00:00:00',
719
+ ends_at: '2026-04-05 23:59:59',
720
+ repurchasable: 1,
721
+ can_see_recordings: 0,
722
+ has_class: 1,
723
+ next_starts_at: null,
724
+ next_ends_at: null,
725
+ created_at: '2021-07-12T15:34:46.000000Z',
726
+ updated_at: '2026-03-09T09:23:43.000000Z',
727
+ deleted_at: null,
728
+ levels: [Array],
729
+ sessions: [],
730
+ owner: {}
731
+ },
732
+ {
733
+ id: 13,
734
+ category_id: 1,
735
+ type_id: 2,
736
+ cod: 'english-10',
737
+ user_id: 3,
738
+ prerequisite: 12,
739
+ title: 'American English Libro 10',
740
+ price: '55.00',
741
+ enabled: 1,
742
+ image: 'https://d2q322qw6fiitu.cloudfront.net/portadasnuevas/portadas-05.webp',
743
+ youtube_url: null,
744
+ description: '&lt;h2&gt;&lt;strong&gt;Fundación Universidad de Carabobo - 39 años de experiencia &lt;/strong&gt;&lt;/h2&gt;&lt;h3&gt;¿Qué incluye este curso?&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;h3&gt;Encuentro Interactivo con el Facilitador: aclaras dudas y realizas prácticas de speaking.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Explicación gramatical. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Vídeos: Gramática, vocabulario.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Audios. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Ejercicios prácticos. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Libro: American English by FundaUC.&lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Evaluaciones prácticas. &lt;/h3&gt;&lt;/li&gt;&lt;li&gt;&lt;h3&gt;Formativa: permite autoevaluarse para que sepa donde falló y fortalecer su aprendizaje.&lt;/h3&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;El curso de Inglés American English Fundación Universidad de Carabobo - Insignia Education estan avalados por el Ministerio de Educación venezolano y la Universidad de Carabobo. &lt;/h3&gt;',
745
+ current_chat_id: '-5188077817',
746
+ insignia_id: 2,
747
+ duration: 28,
748
+ certificate_exam_enabled: 1,
749
+ certificate_exam_attempts: 1,
750
+ certificate_exam_price: '6.00',
751
+ can_move_between_dates: 1,
752
+ starts_at: '2026-03-16 00:00:00',
753
+ ends_at: '2026-04-12 23:59:59',
754
+ repurchasable: 1,
755
+ can_see_recordings: 0,
756
+ has_class: 1,
757
+ next_starts_at: null,
758
+ next_ends_at: null,
759
+ created_at: '2021-07-12T15:39:08.000000Z',
760
+ updated_at: '2026-03-16T09:06:33.000000Z',
761
+ deleted_at: null,
762
+ levels: [Array],
763
+ sessions: [],
764
+ owner: {}
765
+ },
766
+ {
767
+ id: 19,
768
+ category_id: 1,
769
+ type_id: 2,
770
+ cod: 'english-advanced-1',
771
+ user_id: 3,
772
+ prerequisite: 13,
773
+ title: 'Advanced Communication 1',
774
+ price: '55.00',
775
+ enabled: 1,
776
+ image: 'https://d2q322qw6fiitu.cloudfront.net/funda_uc/advanced-communication-1/ac-1-1277x709.webp',
777
+ youtube_url: null,
778
+ description: '&lt;p&gt;placeholder description&lt;/p&gt;',
779
+ current_chat_id: '-4876435687',
780
+ insignia_id: 2,
781
+ duration: 28,
782
+ certificate_exam_enabled: 1,
783
+ certificate_exam_attempts: 1,
784
+ certificate_exam_price: '6.00',
785
+ can_move_between_dates: 1,
786
+ starts_at: '2026-03-16 00:00:00',
787
+ ends_at: '2026-04-12 23:59:59',
788
+ repurchasable: 1,
789
+ can_see_recordings: 0,
790
+ has_class: 1,
791
+ next_starts_at: null,
792
+ next_ends_at: null,
793
+ created_at: '2021-10-04T12:57:38.000000Z',
794
+ updated_at: '2026-03-16T09:06:33.000000Z',
795
+ deleted_at: null,
796
+ levels: [Array],
797
+ sessions: [],
798
+ owner: {}
799
+ },
800
+ {
801
+ id: 20,
802
+ category_id: 1,
803
+ type_id: 2,
804
+ cod: 'english-advanced-2',
805
+ user_id: 3,
806
+ prerequisite: 19,
807
+ title: 'Advanced Communication 2',
808
+ price: '55.00',
809
+ enabled: 1,
810
+ image: 'https://d2q322qw6fiitu.cloudfront.net/funda_uc/advanced-communication-2/ac-2-1245x709.webp',
811
+ youtube_url: null,
812
+ description: '&lt;p&gt;placeholder description&lt;/p&gt;',
813
+ current_chat_id: '-5086793318',
814
+ insignia_id: 2,
815
+ duration: 28,
816
+ certificate_exam_enabled: 1,
817
+ certificate_exam_attempts: 1,
818
+ certificate_exam_price: '6.00',
819
+ can_move_between_dates: 1,
820
+ starts_at: '2026-03-23 00:00:00',
821
+ ends_at: '2026-04-19 23:59:59',
822
+ repurchasable: 1,
823
+ can_see_recordings: 0,
824
+ has_class: 1,
825
+ next_starts_at: null,
826
+ next_ends_at: null,
827
+ created_at: '2021-10-04T12:59:28.000000Z',
828
+ updated_at: '2026-03-23T07:50:47.000000Z',
829
+ deleted_at: null,
830
+ levels: [Array],
831
+ sessions: [],
832
+ owner: {}
833
+ },
834
+ {
835
+ id: 21,
836
+ category_id: 1,
837
+ type_id: 2,
838
+ cod: 'english-advanced-3',
839
+ user_id: 3,
840
+ prerequisite: 20,
841
+ title: 'Advanced Communication 3',
842
+ price: '55.00',
843
+ enabled: 1,
844
+ image: 'https://d2q322qw6fiitu.cloudfront.net/funda_uc/advanced-communication-3/ac-3-1277x709.webp',
845
+ youtube_url: null,
846
+ description: '&lt;p&gt;placeholder description&lt;/p&gt;',
847
+ current_chat_id: '-5134384690',
848
+ insignia_id: 2,
849
+ duration: 28,
850
+ certificate_exam_enabled: 1,
851
+ certificate_exam_attempts: 1,
852
+ certificate_exam_price: '6.00',
853
+ can_move_between_dates: 1,
854
+ starts_at: '2026-03-23 00:00:00',
855
+ ends_at: '2026-04-19 23:59:59',
856
+ repurchasable: 0,
857
+ can_see_recordings: 0,
858
+ has_class: 1,
859
+ next_starts_at: null,
860
+ next_ends_at: null,
861
+ created_at: '2021-10-04T13:02:05.000000Z',
862
+ updated_at: '2026-03-23T07:50:47.000000Z',
863
+ deleted_at: null,
864
+ levels: [Array],
865
+ sessions: [],
866
+ owner: {}
867
+ },
868
+ {
869
+ id: 22,
870
+ category_id: 1,
871
+ type_id: 2,
872
+ cod: 'english-advanced-4',
873
+ user_id: 3,
874
+ prerequisite: 21,
875
+ title: 'Advanced Communication 4',
876
+ price: '55.00',
877
+ enabled: 1,
878
+ image: 'https://d2q322qw6fiitu.cloudfront.net/funda_uc/advanced-communication-4/ac-4-1245x709.webp',
879
+ youtube_url: null,
880
+ description: '&lt;p&gt;placeholder description&lt;/p&gt;',
881
+ current_chat_id: '-5243437660',
882
+ insignia_id: 2,
883
+ duration: 28,
884
+ certificate_exam_enabled: 1,
885
+ certificate_exam_attempts: 1,
886
+ certificate_exam_price: '6.00',
887
+ can_move_between_dates: 1,
888
+ starts_at: '2026-03-02 00:00:00',
889
+ ends_at: '2026-03-29 23:59:59',
890
+ repurchasable: 1,
891
+ can_see_recordings: 0,
892
+ has_class: 1,
893
+ next_starts_at: null,
894
+ next_ends_at: null,
895
+ created_at: '2021-10-04T13:05:14.000000Z',
896
+ updated_at: '2026-03-02T08:41:30.000000Z',
897
+ deleted_at: null,
898
+ levels: [Array],
899
+ sessions: [],
900
+ owner: {}
901
+ },
902
+ {
903
+ id: 23,
904
+ category_id: 1,
905
+ type_id: 2,
906
+ cod: 'english-advanced-5',
907
+ user_id: 3,
908
+ prerequisite: 22,
909
+ title: 'Advanced Communication 5',
910
+ price: '55.00',
911
+ enabled: 1,
912
+ image: 'https://d2q322qw6fiitu.cloudfront.net/funda_uc/advanced-communication-5/ac-5-1244x709.webp',
913
+ youtube_url: null,
914
+ description: '&lt;p&gt;placeholder description&lt;/p&gt;',
915
+ current_chat_id: '-5299519356',
916
+ insignia_id: 2,
917
+ duration: 28,
918
+ certificate_exam_enabled: 1,
919
+ certificate_exam_attempts: 1,
920
+ certificate_exam_price: '6.00',
921
+ can_move_between_dates: 1,
922
+ starts_at: '2026-03-02 00:00:00',
923
+ ends_at: '2026-03-29 23:59:59',
924
+ repurchasable: 1,
925
+ can_see_recordings: 0,
926
+ has_class: 1,
927
+ next_starts_at: null,
928
+ next_ends_at: null,
929
+ created_at: '2021-10-04T13:08:57.000000Z',
930
+ updated_at: '2026-03-02T08:41:30.000000Z',
931
+ deleted_at: null,
932
+ levels: [Array],
933
+ sessions: [],
934
+ owner: {}
935
+ }
936
+ ],
937
+ first_page_url: 'http://localhost:8000/api/v1/courses?page=1',
938
+ from: 1,
939
+ last_page: 4,
940
+ last_page_url: 'http://localhost:8000/api/v1/courses?page=4',
941
+ links: [
942
+ { url: null, label: '&amp;laquo; Previous', page: null, active: false },
943
+ {
944
+ url: 'http://localhost:8000/api/v1/courses?page=1',
945
+ label: '1',
946
+ page: 1,
947
+ active: true
948
+ },
949
+ {
950
+ url: 'http://localhost:8000/api/v1/courses?page=2',
951
+ label: '2',
952
+ page: 2,
953
+ active: false
954
+ },
955
+ {
956
+ url: 'http://localhost:8000/api/v1/courses?page=3',
957
+ label: '3',
958
+ page: 3,
959
+ active: false
960
+ },
961
+ {
962
+ url: 'http://localhost:8000/api/v1/courses?page=4',
963
+ label: '4',
964
+ page: 4,
965
+ active: false
966
+ },
967
+ {
968
+ url: 'http://localhost:8000/api/v1/courses?page=2',
969
+ label: 'Next &amp;raquo;',
970
+ page: 2,
971
+ active: false
972
+ }
973
+ ],
974
+ next_page_url: 'http://localhost:8000/api/v1/courses?page=2',
975
+ path: 'http://localhost:8000/api/v1/courses',
976
+ per_page: 15,
977
+ prev_page_url: null,
978
+ to: 15,
979
+ total: 52
980
+ }</pre></div></div></details></main></body></html>