@ueu/ueu-canvas 0.0.4 → 0.0.6

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 (319) hide show
  1. package/README.md +44 -0
  2. package/dist/Account.js +60 -0
  3. package/dist/Account.js.map +1 -0
  4. package/dist/NotImplementedException.js +8 -0
  5. package/dist/NotImplementedException.js.map +1 -0
  6. package/dist/__mocks__/Account.d.ts +3 -3
  7. package/dist/__mocks__/Account.js +51 -0
  8. package/dist/__mocks__/Account.js.map +1 -0
  9. package/dist/__mocks__/index.js +25 -0
  10. package/dist/__mocks__/index.js.map +1 -0
  11. package/dist/__mocks__/mockAccountData.js +45 -0
  12. package/dist/__mocks__/mockAccountData.js.map +1 -0
  13. package/dist/__mocks__/mockEnrollment.d.ts +1 -1
  14. package/dist/__mocks__/mockEnrollment.js +24 -0
  15. package/dist/__mocks__/mockEnrollment.js.map +1 -0
  16. package/dist/__mocks__/mockRubricData.d.ts +1 -1
  17. package/dist/__mocks__/mockRubricData.js +56 -0
  18. package/dist/__mocks__/mockRubricData.js.map +1 -0
  19. package/dist/__mocks__/mockTabData.d.ts +1 -1
  20. package/dist/__mocks__/mockTabData.js +14 -0
  21. package/dist/__mocks__/mockTabData.js.map +1 -0
  22. package/dist/__mocks__/mockTermData.d.ts +1 -1
  23. package/dist/__mocks__/mockTermData.js +8 -0
  24. package/dist/__mocks__/mockTermData.js.map +1 -0
  25. package/dist/__mocks__/mockUserData.js +15 -0
  26. package/dist/__mocks__/mockUserData.js.map +1 -0
  27. package/dist/__mocks__/utils.js +14 -0
  28. package/dist/__mocks__/utils.js.map +1 -0
  29. package/dist/__tests__/canvasUtils.test.js +431 -0
  30. package/dist/__tests__/canvasUtils.test.js.map +1 -0
  31. package/dist/__tests__/fetch.test.js +236 -0
  32. package/dist/__tests__/fetch.test.js.map +1 -0
  33. package/dist/__tests__/profile.test.js +17 -0
  34. package/dist/__tests__/profile.test.js.map +1 -0
  35. package/dist/__tests__/rubrics.test.js +136 -0
  36. package/dist/__tests__/rubrics.test.js.map +1 -0
  37. package/dist/baseCanvasObject.js +115 -0
  38. package/dist/baseCanvasObject.js.map +1 -0
  39. package/dist/canvasDataDefs.d.ts +4 -0
  40. package/dist/canvasDataDefs.d.ts.map +1 -1
  41. package/dist/canvasDataDefs.js +3 -0
  42. package/dist/canvasDataDefs.js.map +1 -0
  43. package/dist/canvasUtils.d.ts +1 -1
  44. package/dist/canvasUtils.js +358 -0
  45. package/dist/canvasUtils.js.map +1 -0
  46. package/dist/consts.js +6 -0
  47. package/dist/consts.js.map +1 -0
  48. package/dist/content/BaseContentItem.d.ts +6 -6
  49. package/dist/content/BaseContentItem.js +182 -0
  50. package/dist/content/BaseContentItem.js.map +1 -0
  51. package/dist/content/ContentKind.d.ts +3 -3
  52. package/dist/content/ContentKind.js +45 -0
  53. package/dist/content/ContentKind.js.map +1 -0
  54. package/dist/content/__mocks__/determineContent.d.ts +14 -14
  55. package/dist/content/__mocks__/determineContent.js +27 -0
  56. package/dist/content/__mocks__/determineContent.js.map +1 -0
  57. package/dist/content/__mocks__/mockAssignmentSubmission.d.ts +1 -1
  58. package/dist/content/__mocks__/mockAssignmentSubmission.js +38 -0
  59. package/dist/content/__mocks__/mockAssignmentSubmission.js.map +1 -0
  60. package/dist/content/__mocks__/mockContentData.d.ts +3 -3
  61. package/dist/content/__mocks__/mockContentData.js +92 -0
  62. package/dist/content/__mocks__/mockContentData.js.map +1 -0
  63. package/dist/content/__mocks__/openThisContentInTarget.js +6 -0
  64. package/dist/content/__mocks__/openThisContentInTarget.js.map +1 -0
  65. package/dist/content/__testingUtils__/utils.d.ts +1 -1
  66. package/dist/content/__testingUtils__/utils.js +43 -0
  67. package/dist/content/__testingUtils__/utils.js.map +1 -0
  68. package/dist/content/__tests__/determineContent.test.js +115 -0
  69. package/dist/content/__tests__/determineContent.test.js.map +1 -0
  70. package/dist/content/__tests__/getContentFuncs.test.js +66 -0
  71. package/dist/content/__tests__/getContentFuncs.test.js.map +1 -0
  72. package/dist/content/assignments/Assignment.d.ts +4 -4
  73. package/dist/content/assignments/Assignment.js +61 -0
  74. package/dist/content/assignments/Assignment.js.map +1 -0
  75. package/dist/content/assignments/AssignmentKind.d.ts +3 -3
  76. package/dist/content/assignments/AssignmentKind.js +24 -0
  77. package/dist/content/assignments/AssignmentKind.js.map +1 -0
  78. package/dist/content/assignments/__tests__/AssignmentKind.test.js +56 -0
  79. package/dist/content/assignments/__tests__/AssignmentKind.test.js.map +1 -0
  80. package/dist/content/assignments/__tests__/assignments.test.js +95 -0
  81. package/dist/content/assignments/__tests__/assignments.test.js.map +1 -0
  82. package/dist/content/assignments/deleteAssignmentGroup.js +17 -0
  83. package/dist/content/assignments/deleteAssignmentGroup.js.map +1 -0
  84. package/dist/content/assignments/genAssignmentGroups.d.ts +1 -1
  85. package/dist/content/assignments/genAssignmentGroups.js +14 -0
  86. package/dist/content/assignments/genAssignmentGroups.js.map +1 -0
  87. package/dist/content/assignments/index.d.ts +4 -4
  88. package/dist/content/assignments/index.js +28 -0
  89. package/dist/content/assignments/index.js.map +1 -0
  90. package/dist/content/assignments/legacy.js +12 -0
  91. package/dist/content/assignments/legacy.js.map +1 -0
  92. package/dist/content/assignments/updateAssignmentDueDates.d.ts +2 -2
  93. package/dist/content/assignments/updateAssignmentDueDates.js +22 -0
  94. package/dist/content/assignments/updateAssignmentDueDates.js.map +1 -0
  95. package/dist/content/determineContent.d.ts +8 -8
  96. package/dist/content/determineContent.js +70 -0
  97. package/dist/content/determineContent.js.map +1 -0
  98. package/dist/content/discussions/Discussion.d.ts +4 -4
  99. package/dist/content/discussions/Discussion.js +32 -0
  100. package/dist/content/discussions/Discussion.js.map +1 -0
  101. package/dist/content/discussions/DiscussionKind.d.ts +2 -2
  102. package/dist/content/discussions/DiscussionKind.js +23 -0
  103. package/dist/content/discussions/DiscussionKind.js.map +1 -0
  104. package/dist/content/discussions/__tests__/DiscussionKind.test.js +56 -0
  105. package/dist/content/discussions/__tests__/DiscussionKind.test.js.map +1 -0
  106. package/dist/content/discussions/genEquivalentDiscussionData.js +97 -0
  107. package/dist/content/discussions/genEquivalentDiscussionData.js.map +1 -0
  108. package/dist/content/discussions/index.js +19 -0
  109. package/dist/content/discussions/index.js.map +1 -0
  110. package/dist/content/getContentFuncs.js +25 -0
  111. package/dist/content/getContentFuncs.js.map +1 -0
  112. package/dist/content/index.js +27 -0
  113. package/dist/content/index.js.map +1 -0
  114. package/dist/content/openThisContentInTarget.d.ts +1 -1
  115. package/dist/content/openThisContentInTarget.js +35 -0
  116. package/dist/content/openThisContentInTarget.js.map +1 -0
  117. package/dist/content/pages/Page.d.ts +5 -4
  118. package/dist/content/pages/Page.d.ts.map +1 -1
  119. package/dist/content/pages/Page.js +39 -0
  120. package/dist/content/pages/Page.js.map +1 -0
  121. package/dist/content/pages/PageKind.d.ts +3 -2
  122. package/dist/content/pages/PageKind.d.ts.map +1 -1
  123. package/dist/content/pages/PageKind.js +24 -0
  124. package/dist/content/pages/PageKind.js.map +1 -0
  125. package/dist/content/pages/__tests__/PageKind.test.js +69 -0
  126. package/dist/content/pages/__tests__/PageKind.test.js.map +1 -0
  127. package/dist/content/pages/__tests__/learningMaterialsForModule.js +82 -0
  128. package/dist/content/pages/__tests__/learningMaterialsForModule.js.map +1 -0
  129. package/dist/content/pages/index.js +56 -0
  130. package/dist/content/pages/index.js.map +1 -0
  131. package/dist/content/pages/learningMaterialsForModule.d.ts +2 -2
  132. package/dist/content/pages/learningMaterialsForModule.js +16 -0
  133. package/dist/content/pages/learningMaterialsForModule.js.map +1 -0
  134. package/dist/content/pages/types.d.ts +2 -1
  135. package/dist/content/pages/types.d.ts.map +1 -1
  136. package/dist/content/pages/types.js +3 -0
  137. package/dist/content/pages/types.js.map +1 -0
  138. package/dist/content/quizzes/Quiz.d.ts +1 -1
  139. package/dist/content/quizzes/Quiz.js +27 -0
  140. package/dist/content/quizzes/Quiz.js.map +1 -0
  141. package/dist/content/quizzes/QuizKind.d.ts +2 -2
  142. package/dist/content/quizzes/QuizKind.js +22 -0
  143. package/dist/content/quizzes/QuizKind.js.map +1 -0
  144. package/dist/content/quizzes/__tests__/QuizKind.test.js +56 -0
  145. package/dist/content/quizzes/__tests__/QuizKind.test.js.map +1 -0
  146. package/dist/content/quizzes/index.js +3 -0
  147. package/dist/content/quizzes/index.js.map +1 -0
  148. package/dist/content/quizzes/types.js +3 -0
  149. package/dist/content/quizzes/types.js.map +1 -0
  150. package/dist/content/types.d.ts +6 -6
  151. package/dist/content/types.js +3 -0
  152. package/dist/content/types.js.map +1 -0
  153. package/dist/course/Course.d.ts +15 -11
  154. package/dist/course/Course.d.ts.map +1 -1
  155. package/dist/course/Course.js +472 -0
  156. package/dist/course/Course.js.map +1 -0
  157. package/dist/course/IBlueprintCourse.d.ts +2 -2
  158. package/dist/course/IBlueprintCourse.js +3 -0
  159. package/dist/course/IBlueprintCourse.js.map +1 -0
  160. package/dist/course/__mocks__/blueprint.d.ts +1 -1
  161. package/dist/course/__mocks__/blueprint.js +28 -0
  162. package/dist/course/__mocks__/blueprint.js.map +1 -0
  163. package/dist/course/__mocks__/mockCourseData.d.ts +1 -1
  164. package/dist/course/__mocks__/mockCourseData.js +50 -0
  165. package/dist/course/__mocks__/mockCourseData.js.map +1 -0
  166. package/dist/course/__mocks__/mockLatePolicy.js +15 -0
  167. package/dist/course/__mocks__/mockLatePolicy.js.map +1 -0
  168. package/dist/course/__mocks__/mockModuleData.js +55 -0
  169. package/dist/course/__mocks__/mockModuleData.js.map +1 -0
  170. package/dist/course/__mocks__/mockProgressData.js +29 -0
  171. package/dist/course/__mocks__/mockProgressData.js.map +1 -0
  172. package/dist/course/__tests__/Course.test.js +75 -0
  173. package/dist/course/__tests__/Course.test.js.map +1 -0
  174. package/dist/course/__tests__/blueprint.test.js +273 -0
  175. package/dist/course/__tests__/blueprint.test.js.map +1 -0
  176. package/dist/course/__tests__/changeStartDate.test.js +240 -0
  177. package/dist/course/__tests__/changeStartDate.test.js.map +1 -0
  178. package/dist/course/__tests__/index.test.js +77 -0
  179. package/dist/course/__tests__/index.test.js.map +1 -0
  180. package/dist/course/blueprint.d.ts +1 -1
  181. package/dist/course/blueprint.js +108 -0
  182. package/dist/course/blueprint.js.map +1 -0
  183. package/dist/course/cachedGetAssociatedCoursesFunc.d.ts +2 -2
  184. package/dist/course/cachedGetAssociatedCoursesFunc.js +14 -0
  185. package/dist/course/cachedGetAssociatedCoursesFunc.js.map +1 -0
  186. package/dist/course/changeStartDate.d.ts +7 -6
  187. package/dist/course/changeStartDate.d.ts.map +1 -1
  188. package/dist/course/changeStartDate.js +182 -0
  189. package/dist/course/changeStartDate.js.map +1 -0
  190. package/dist/course/code.js +39 -0
  191. package/dist/course/code.js.map +1 -0
  192. package/dist/course/courseTypes.d.ts +5 -5
  193. package/dist/course/courseTypes.js +3 -0
  194. package/dist/course/courseTypes.js.map +1 -0
  195. package/dist/course/getCourseIdFromUrl.js +12 -0
  196. package/dist/course/getCourseIdFromUrl.js.map +1 -0
  197. package/dist/course/getSections.d.ts +3 -3
  198. package/dist/course/getSections.js +10 -0
  199. package/dist/course/getSections.js.map +1 -0
  200. package/dist/course/getTermNameFromSections.d.ts +1 -1
  201. package/dist/course/getTermNameFromSections.js +13 -0
  202. package/dist/course/getTermNameFromSections.js.map +1 -0
  203. package/dist/course/index.js +28 -0
  204. package/dist/course/index.js.map +1 -0
  205. package/dist/course/migration/__mocks__/mockMigrationData.js +41 -0
  206. package/dist/course/migration/__mocks__/mockMigrationData.js.map +1 -0
  207. package/dist/course/migration/__tests__/migration.test.js +141 -0
  208. package/dist/course/migration/__tests__/migration.test.js.map +1 -0
  209. package/dist/course/migration/__tests__/migrationCache.test.js +42 -0
  210. package/dist/course/migration/__tests__/migrationCache.test.js.map +1 -0
  211. package/dist/course/migration/index.d.ts +2 -2
  212. package/dist/course/migration/index.js +74 -0
  213. package/dist/course/migration/index.js.map +1 -0
  214. package/dist/course/migration/migrationCache.js +44 -0
  215. package/dist/course/migration/migrationCache.js.map +1 -0
  216. package/dist/course/modules.d.ts +1 -1
  217. package/dist/course/modules.js +82 -0
  218. package/dist/course/modules.js.map +1 -0
  219. package/dist/course/notABlueprintError.js +8 -0
  220. package/dist/course/notABlueprintError.js.map +1 -0
  221. package/dist/course/references/getReferencesForText.d.ts +1 -1
  222. package/dist/course/references/getReferencesForText.js +14 -0
  223. package/dist/course/references/getReferencesForText.js.map +1 -0
  224. package/dist/course/references/getReferencesForText.test.js +21 -0
  225. package/dist/course/references/getReferencesForText.test.js.map +1 -0
  226. package/dist/course/references/getReferencesTemplate.d.ts +2 -2
  227. package/dist/course/references/getReferencesTemplate.js +30 -0
  228. package/dist/course/references/getReferencesTemplate.js.map +1 -0
  229. package/dist/course/references/mockCiteAsResponse.js +323 -0
  230. package/dist/course/references/mockCiteAsResponse.js.map +1 -0
  231. package/dist/course/retireBlueprint.d.ts +2 -2
  232. package/dist/course/retireBlueprint.js +21 -0
  233. package/dist/course/retireBlueprint.js.map +1 -0
  234. package/dist/course/toolbox.d.ts +3 -3
  235. package/dist/course/toolbox.js +96 -0
  236. package/dist/course/toolbox.js.map +1 -0
  237. package/dist/date.js +119 -0
  238. package/dist/date.js.map +1 -0
  239. package/dist/enrollments/EnrollmentTypes.d.ts +2 -2
  240. package/dist/enrollments/EnrollmentTypes.js +3 -0
  241. package/dist/enrollments/EnrollmentTypes.js.map +1 -0
  242. package/dist/enrollments/enrollmentRole.js +7 -0
  243. package/dist/enrollments/enrollmentRole.js.map +1 -0
  244. package/dist/enrollments/getEnrollmentGenerator.d.ts +2 -2
  245. package/dist/enrollments/getEnrollmentGenerator.js +25 -0
  246. package/dist/enrollments/getEnrollmentGenerator.js.map +1 -0
  247. package/dist/enrollments/index.js +20 -0
  248. package/dist/enrollments/index.js.map +1 -0
  249. package/dist/fetch/__mocks__/fetchJson.js +5 -0
  250. package/dist/fetch/__mocks__/fetchJson.js.map +1 -0
  251. package/dist/fetch/__mocks__/getPagedDataGenerator.js +10 -0
  252. package/dist/fetch/__mocks__/getPagedDataGenerator.js.map +1 -0
  253. package/dist/fetch/__mocks__/index.js +8 -0
  254. package/dist/fetch/__mocks__/index.js.map +1 -0
  255. package/dist/fetch/apiGetConfig.d.ts +1 -1
  256. package/dist/fetch/apiGetConfig.js +11 -0
  257. package/dist/fetch/apiGetConfig.js.map +1 -0
  258. package/dist/fetch/apiWriteConfig.d.ts +2 -2
  259. package/dist/fetch/apiWriteConfig.js +16 -0
  260. package/dist/fetch/apiWriteConfig.js.map +1 -0
  261. package/dist/fetch/canvasDataFetchGenFunc.d.ts +2 -2
  262. package/dist/fetch/canvasDataFetchGenFunc.js +13 -0
  263. package/dist/fetch/canvasDataFetchGenFunc.js.map +1 -0
  264. package/dist/fetch/fetchJson.d.ts +1 -1
  265. package/dist/fetch/fetchJson.js +19 -0
  266. package/dist/fetch/fetchJson.js.map +1 -0
  267. package/dist/fetch/getPagedDataGenerator.d.ts +2 -2
  268. package/dist/fetch/getPagedDataGenerator.js +145 -0
  269. package/dist/fetch/getPagedDataGenerator.js.map +1 -0
  270. package/dist/fetch/index.js +22 -0
  271. package/dist/fetch/index.js.map +1 -0
  272. package/dist/fetch/utils.d.ts +1 -1
  273. package/dist/fetch/utils.js +14 -0
  274. package/dist/fetch/utils.js.map +1 -0
  275. package/dist/files.js +33 -0
  276. package/dist/files.js.map +1 -0
  277. package/dist/fixes/annotations.d.ts +1 -1
  278. package/dist/fixes/annotations.js +95 -0
  279. package/dist/fixes/annotations.js.map +1 -0
  280. package/dist/fixes/index.js +87 -0
  281. package/dist/fixes/index.js.map +1 -0
  282. package/dist/index.d.ts +3 -3
  283. package/dist/index.js +60 -8960
  284. package/dist/index.js.map +1 -0
  285. package/dist/profile.d.ts +2 -2
  286. package/dist/profile.js +230 -0
  287. package/dist/profile.js.map +1 -0
  288. package/dist/rubricTypes.d.ts +14 -0
  289. package/dist/rubricTypes.d.ts.map +1 -1
  290. package/dist/rubricTypes.js +3 -0
  291. package/dist/rubricTypes.js.map +1 -0
  292. package/dist/rubrics.d.ts +1 -1
  293. package/dist/rubrics.js +46 -0
  294. package/dist/rubrics.js.map +1 -0
  295. package/dist/term/Term.d.ts +3 -3
  296. package/dist/term/Term.js +64 -0
  297. package/dist/term/Term.js.map +1 -0
  298. package/dist/term/__tests__/dateFromTermName.test.js +26 -0
  299. package/dist/term/__tests__/dateFromTermName.test.js.map +1 -0
  300. package/dist/term/__tests__/getTermsGenerator.test.js +19 -0
  301. package/dist/term/__tests__/getTermsGenerator.test.js.map +1 -0
  302. package/dist/term/dateFromTermName.js +17 -0
  303. package/dist/term/dateFromTermName.js.map +1 -0
  304. package/dist/term/getTermsGenerator.js +15 -0
  305. package/dist/term/getTermsGenerator.js.map +1 -0
  306. package/dist/term/index.js +20 -0
  307. package/dist/term/index.js.map +1 -0
  308. package/dist/toolbox.js +25 -0
  309. package/dist/toolbox.js.map +1 -0
  310. package/dist/types.d.ts +4 -3
  311. package/dist/types.d.ts.map +1 -1
  312. package/dist/types.js +3 -0
  313. package/dist/types.js.map +1 -0
  314. package/dist/users/getUserGenerator.d.ts +1 -1
  315. package/dist/users/getUserGenerator.js +21 -0
  316. package/dist/users/getUserGenerator.js.map +1 -0
  317. package/dist/users/index.js +18 -0
  318. package/dist/users/index.js.map +1 -0
  319. package/package.json +59 -51
@@ -1,25 +1,25 @@
1
- import { Assignment } from "@/content/assignments/Assignment";
2
- import { ContentData } from "@/content/types";
3
- import { ICanvasCallConfig } from "@/canvasUtils";
1
+ import { Assignment } from "../../content/assignments/Assignment";
2
+ import { ContentData } from "../../content/types";
3
+ import { ICanvasCallConfig } from "../../canvasUtils";
4
4
  export declare const getContentClassFromUrl: jest.Mock<typeof Assignment, [url?: string | null | undefined], any>;
5
5
  export declare const getContentItemFromUrl: jest.Mock<Promise<Assignment>, [url?: string | null | undefined], any>;
6
- export declare function getContentKindFromUrl(url: string): import("..").ContentKind<import("@/content/types").IAssignmentData, import("../..").CanvasData, import("@/content/types").UpdateAssignmentDataOptions>;
7
- export declare function getContentKindFromContent(contentData: ContentData): import("..").ContentKind<import("@/content/types").IAssignmentData, import("../..").CanvasData, import("@/content/types").UpdateAssignmentDataOptions>;
6
+ export declare function getContentKindFromUrl(url: string): import("..").ContentKind<import("../../content/types").IAssignmentData, import("../..").CanvasData, import("../../content/types").UpdateAssignmentDataOptions>;
7
+ export declare function getContentKindFromContent(contentData: ContentData): import("..").ContentKind<import("../../content/types").IAssignmentData, import("../..").CanvasData, import("../../content/types").UpdateAssignmentDataOptions>;
8
8
  export declare function getContentDataFromUrl(url: string, config: ICanvasCallConfig): Promise<{
9
9
  [x: string]: any;
10
10
  id: number;
11
11
  name: string;
12
12
  description: string;
13
- created_at: import("@/content/types").DateString;
14
- updated_at: import("@/content/types").DateString | null;
15
- due_at: import("@/content/types").DateString | null;
16
- lock_at: import("@/content/types").DateString | null;
17
- unlock_at: import("@/content/types").DateString | null;
13
+ created_at: import("../../content/types").DateString;
14
+ updated_at: import("../../content/types").DateString | null;
15
+ due_at: import("../../content/types").DateString | null;
16
+ lock_at: import("../../content/types").DateString | null;
17
+ unlock_at: import("../../content/types").DateString | null;
18
18
  has_overrides: boolean;
19
- all_dates?: import("@/content/types").AssignmentDate[];
19
+ all_dates?: import("../../content/types").AssignmentDate[];
20
20
  course_id: number;
21
21
  html_url: string;
22
- discussion_topic?: import("@/content/types").IDiscussionData;
22
+ discussion_topic?: import("../../content/types").IDiscussionData;
23
23
  submissions_download_url: string;
24
24
  assignment_group_id: number;
25
25
  due_date_required: boolean;
@@ -36,7 +36,7 @@ export declare function getContentDataFromUrl(url: string, config: ICanvasCallCo
36
36
  peer_reviews: boolean;
37
37
  automatic_peer_reviews: boolean;
38
38
  peer_review_count?: number;
39
- peer_reviews_assign_at?: import("@/content/types").DateString;
39
+ peer_reviews_assign_at?: import("../../content/types").DateString;
40
40
  intra_group_peer_reviews: boolean;
41
41
  group_category_id?: number;
42
42
  needs_grading_count?: number;
@@ -49,7 +49,7 @@ export declare function getContentDataFromUrl(url: string, config: ICanvasCallCo
49
49
  integration_id?: string;
50
50
  integration_data?: Record<string, unknown>;
51
51
  points_possible: number;
52
- submission_types: import("@/content/types").SubmissionType[];
52
+ submission_types: import("../../content/types").SubmissionType[];
53
53
  omit_from_final_grade: boolean;
54
54
  hide_in_gradebook: boolean;
55
55
  moderated_grading: boolean;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getContentItemFromUrl = exports.getContentClassFromUrl = void 0;
7
+ exports.getContentKindFromUrl = getContentKindFromUrl;
8
+ exports.getContentKindFromContent = getContentKindFromContent;
9
+ exports.getContentDataFromUrl = getContentDataFromUrl;
10
+ const mockContentData_1 = require("../../content/__mocks__/mockContentData");
11
+ const mockCourseData_1 = require("../../course/__mocks__/mockCourseData");
12
+ const Assignment_1 = require("../../content/assignments/Assignment");
13
+ const AssignmentKind_1 = __importDefault(require("../../content/assignments/AssignmentKind"));
14
+ exports.getContentClassFromUrl = jest.fn((url = null) => {
15
+ return Assignment_1.Assignment;
16
+ });
17
+ exports.getContentItemFromUrl = jest.fn(async (url = null) => new Assignment_1.Assignment(mockContentData_1.mockAssignmentData, mockCourseData_1.mockCourseData.id));
18
+ function getContentKindFromUrl(url) {
19
+ return AssignmentKind_1.default;
20
+ }
21
+ function getContentKindFromContent(contentData) {
22
+ return AssignmentKind_1.default;
23
+ }
24
+ async function getContentDataFromUrl(url, config) {
25
+ return { ...mockContentData_1.mockAssignmentData };
26
+ }
27
+ //# sourceMappingURL=determineContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"determineContent.js","sourceRoot":"","sources":["../../../src/content/__mocks__/determineContent.ts"],"names":[],"mappings":";;;;;;AAgBA,sDAEC;AAED,8DAEC;AAED,sDAEC;AA1BD,yEAAuE;AACvE,sEAAiE;AACjE,iEAA4D;AAI5D,0FAAkE;AAErD,QAAA,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,MAAqB,IAAI,EAAE,EAAE;IACxE,OAAO,uBAAU,CAAC;AACtB,CAAC,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,IAAI,CAAC,EAAE,CACxC,KAAK,EAAE,MAAqB,IAAI,EAAG,EAAE,CACjC,IAAI,uBAAU,CAAC,oCAAkB,EAAE,+BAAc,CAAC,EAAE,CAAC,CAAC,CAAA;AAE9D,SAAgB,qBAAqB,CAAC,GAAU;IAC5C,OAAO,wBAAc,CAAC;AAC1B,CAAC;AAED,SAAgB,yBAAyB,CAAC,WAAuB;IAC7D,OAAO,wBAAc,CAAC;AAC1B,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,GAAU,EAAE,MAAwB;IAC5E,OAAO,EAAC,GAAG,oCAAkB,EAAC,CAAA;AAClC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IAssignmentSubmission } from "@canvas/content/types";
1
+ import { IAssignmentSubmission } from "../../content/types";
2
2
  export declare const mockSubmission: IAssignmentSubmission;
3
3
  export default mockSubmission;
4
4
  //# sourceMappingURL=mockAssignmentSubmission.d.ts.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockSubmission = void 0;
4
+ exports.mockSubmission = {
5
+ assignment_id: 23,
6
+ assignment: null,
7
+ course: null,
8
+ attempt: 1,
9
+ body: "There are three factors too...",
10
+ grade: "A-",
11
+ grade_matches_current_submission: true,
12
+ html_url: "https://example.com/courses/255/assignments/543/submissions/134",
13
+ preview_url: "https://example.com/courses/255/assignments/543/submissions/134?preview=1",
14
+ score: 13.5,
15
+ submission_comments: null,
16
+ submission_type: 'online_text_entry',
17
+ submitted_at: "2012-01-01T01:00:00Z",
18
+ url: null,
19
+ user_id: 134,
20
+ grader_id: 86,
21
+ graded_at: "2012-01-02T03:05:34Z",
22
+ user: null,
23
+ late: false,
24
+ assignment_visible: true,
25
+ excused: true,
26
+ missing: true,
27
+ late_policy_status: 'missing',
28
+ points_deducted: 12.3,
29
+ seconds_late: 300,
30
+ workflow_state: 'submitted',
31
+ extra_attempts: 10,
32
+ anonymous_id: "acJ4Q",
33
+ posted_at: "2020-01-02T11:10:30Z",
34
+ read_status: 'read',
35
+ redo_request: true
36
+ };
37
+ exports.default = exports.mockSubmission;
38
+ //# sourceMappingURL=mockAssignmentSubmission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockAssignmentSubmission.js","sourceRoot":"","sources":["../../../src/content/__mocks__/mockAssignmentSubmission.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAA0B;IACnD,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,gCAAgC;IACtC,KAAK,EAAE,IAAI;IACX,gCAAgC,EAAE,IAAI;IACtC,QAAQ,EAAE,iEAAiE;IAC3E,WAAW,EAAE,2EAA2E;IACxF,KAAK,EAAE,IAAI;IACX,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,mBAAmB;IACpC,YAAY,EAAE,sBAAsB;IACpC,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,sBAAsB;IACjC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,kBAAkB,EAAE,SAAS;IAC7B,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,WAAW;IAC3B,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,OAAO;IACrB,SAAS,EAAE,sBAAsB;IACjC,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,kBAAe,sBAAc,CAAC"}
@@ -1,6 +1,6 @@
1
- import { IQuizData } from "@/content/quizzes/types";
2
- import { IPageData } from "@/content/pages/types";
3
- import { IAssignmentData, IDiscussionData } from "@canvas/content/types";
1
+ import { IQuizData } from "../../content/quizzes/types";
2
+ import { IPageData } from "../../content/pages/types";
3
+ import { IAssignmentData, IDiscussionData } from "../../content/types";
4
4
  export declare const mockPageData: IPageData;
5
5
  export declare const mockQuizData: IQuizData;
6
6
  export declare const mockAssignmentData: IAssignmentData;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockDiscussionData = exports.mockAssignmentData = exports.mockQuizData = exports.mockPageData = void 0;
4
+ exports.mockPageData = {
5
+ created_at: "", front_page: false, updated_at: "",
6
+ page_id: 0,
7
+ url: 'http://localhost',
8
+ title: 'X',
9
+ body: '<div></div>'
10
+ };
11
+ //front docs
12
+ exports.mockQuizData = {
13
+ id: 0,
14
+ title: "",
15
+ html_url: "",
16
+ mobile_url: "",
17
+ preview_url: "",
18
+ description: "",
19
+ quiz_type: "assignment",
20
+ assignment_group_id: 0,
21
+ shuffle_answers: false,
22
+ hide_results: null,
23
+ one_time_results: false,
24
+ allowed_attempts: 0,
25
+ one_question_at_a_time: false,
26
+ question_count: 0,
27
+ points_possible: 0,
28
+ published: false,
29
+ unpublishable: false,
30
+ locked_for_user: false,
31
+ speedgrader_url: "",
32
+ quiz_extensions_url: "",
33
+ all_dates: null,
34
+ version_number: 0,
35
+ question_types: []
36
+ };
37
+ exports.mockAssignmentData = {
38
+ anonymous_grading: false,
39
+ final_grader_id: 0,
40
+ grader_comments_visible_to_graders: false,
41
+ grader_count: 0,
42
+ grader_names_visible_to_final_grader: false,
43
+ graders_anonymous_to_graders: false,
44
+ hide_in_gradebook: false,
45
+ moderated_grading: false,
46
+ omit_from_final_grade: false,
47
+ allowed_extensions: [],
48
+ assignment_group_id: 0,
49
+ automatic_peer_reviews: false,
50
+ course_id: 0,
51
+ created_at: "",
52
+ description: "",
53
+ due_at: null,
54
+ due_date_required: false,
55
+ grade_group_students_individually: false,
56
+ has_overrides: false,
57
+ html_url: "",
58
+ integration_data: undefined,
59
+ intra_group_peer_reviews: false,
60
+ lock_at: null,
61
+ max_name_length: 0,
62
+ peer_reviews: false,
63
+ points_possible: 0,
64
+ position: 0,
65
+ submission_types: [],
66
+ submissions_download_url: "",
67
+ unlock_at: null,
68
+ updated_at: null,
69
+ id: 0, name: "", rubric: []
70
+ };
71
+ exports.mockDiscussionData = {
72
+ allow_rating: false,
73
+ assignment_id: 1,
74
+ discussion_subentry_count: 0,
75
+ discussion_type: 'threaded',
76
+ locked: false,
77
+ locked_for_user: false,
78
+ only_graders_can_rate: false,
79
+ permissions: {},
80
+ pinned: false,
81
+ published: false,
82
+ read_state: 'unread',
83
+ sort_by_grading: false,
84
+ subscribed: false,
85
+ topic_children: [],
86
+ unread_count: 0,
87
+ user_can_see_posts: false,
88
+ user_name: "",
89
+ html_url: "", id: 0, last_reply_at: "", message: "", posted_at: "", require_initial_post: false, title: "",
90
+ delayed_post_at: ""
91
+ };
92
+ //# sourceMappingURL=mockContentData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockContentData.js","sourceRoot":"","sources":["../../../src/content/__mocks__/mockContentData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openThisContentInTarget = void 0;
4
+ exports.openThisContentInTarget = jest.fn();
5
+ exports.default = exports.openThisContentInTarget;
6
+ //# sourceMappingURL=openThisContentInTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openThisContentInTarget.js","sourceRoot":"","sources":["../../../src/content/__mocks__/openThisContentInTarget.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACjD,kBAAe,+BAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ContentKind, contentUrlFuncs } from "@/content/ContentKind";
1
+ import { ContentKind, contentUrlFuncs } from "../../content/ContentKind";
2
2
  export declare function kindUrlTests(urlFuncs: ReturnType<typeof contentUrlFuncs>, courseId: number, contentId: number, apiUrl: string, htmlUrl: string, allUrl: string): () => void;
3
3
  export type KindDataType<T extends ContentKind<any, any, any>> = Awaited<ReturnType<T['get']>>;
4
4
  export type KindSaveType<T> = T extends ContentKind<infer A, infer B, infer C> ? B : never;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kindUrlTests = kindUrlTests;
4
+ exports.getDataTests = getDataTests;
5
+ const fetchJson_1 = require("../../fetch/fetchJson");
6
+ const canvasUtils_1 = require("../../canvasUtils");
7
+ const getPagedDataGenerator_1 = require("../../fetch/getPagedDataGenerator");
8
+ const utils_1 = require("../../__mocks__/utils");
9
+ const BaseContentItem_1 = require("../../content/BaseContentItem");
10
+ function kindUrlTests(urlFuncs, courseId, contentId, apiUrl, htmlUrl, allUrl) {
11
+ return () => {
12
+ it("getApiUrl", () => expect(urlFuncs.getApiUrl(1, 3)).toEqual(apiUrl));
13
+ it("getHtmlUrl", () => expect(urlFuncs.getHtmlUrl(1, 3)).toEqual(htmlUrl));
14
+ it("getAllUrl", () => expect(urlFuncs.getAllApiUrl(1)).toEqual(allUrl));
15
+ };
16
+ }
17
+ function getDataTests(contentKind, mockDatas, mockSaveParams) {
18
+ return () => {
19
+ it('get works', async () => {
20
+ const content = { ...mockDatas[0], id: 101 };
21
+ fetchJson_1.fetchJson.mockResolvedValue(content);
22
+ const config = {};
23
+ const received = await contentKind.get(0, 0, config);
24
+ expect(received).toEqual(content);
25
+ expect(fetchJson_1.fetchJson).toHaveBeenCalledWith(contentKind.getApiUrl(0, 0), config);
26
+ });
27
+ it('dataGenerator works', async () => {
28
+ getPagedDataGenerator_1.getPagedDataGenerator.mockReturnValue((0, utils_1.mockAsyncGen)(mockDatas));
29
+ expect(await (0, canvasUtils_1.renderAsyncGen)(contentKind.dataGenerator(1))).toEqual(mockDatas);
30
+ });
31
+ it('puts data', async () => {
32
+ fetchJson_1.fetchJson.mockResolvedValue(mockDatas[0]);
33
+ if (!contentKind.put) {
34
+ expect(mockSaveParams).toBeUndefined();
35
+ return;
36
+ }
37
+ const result = await contentKind.put(1, 1, mockSaveParams);
38
+ expect(contentKind.dataIsThisKind(result));
39
+ expect(fetchJson_1.fetchJson).toHaveBeenCalledWith(contentKind.getApiUrl(1, 1), (0, BaseContentItem_1.putContentConfig)(mockSaveParams, {}));
40
+ });
41
+ };
42
+ }
43
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/content/__testingUtils__/utils.ts"],"names":[],"mappings":";;AAQA,oCAMC;AAKD,oCA2BC;AA9CD,iDAA4C;AAC5C,+CAAgE;AAChE,yEAAoE;AACpE,6CAA+C;AAE/C,+DAA2D;AAG3D,SAAgB,YAAY,CAAC,QAA4C,EAAE,QAAgB,EAAE,SAAiB,EAAE,MAAc,EAAE,OAAe,EAAE,MAAc;IAC3J,OAAO,GAAG,EAAE;QACR,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1E,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC3E,CAAC,CAAA;AACL,CAAC;AAKD,SAAgB,YAAY,CAA0C,WAAiB,EAAE,SAA+B,EAAE,cAAkC;IAGxJ,OAAO,GAAG,EAAE;QACR,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,OAAO,GAAG,EAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAC,CAAC;YAC1C,qBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,MAAM,GAAsB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,CAAC,qBAAS,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC/E,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YAChC,6CAAmC,CAAC,eAAe,CAAC,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,MAAM,IAAA,4BAAc,EAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,WAAW,EAAE,KAAK,IAAG,EAAE;YACrB,qBAAuB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;YACxD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAC;gBACvC,OAAO;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;YAC3D,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,qBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAA,kCAAgB,EAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAA;QAC1H,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;AACL,CAAC"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const determineContent_1 = require("../../content/determineContent");
40
+ const assert_1 = __importDefault(require("assert"));
41
+ const mockContentData_1 = require("../../content/__mocks__/mockContentData");
42
+ const fetchJson_1 = require("../../fetch/fetchJson");
43
+ const Quiz_1 = require("../../content/quizzes/Quiz");
44
+ const Page_1 = require("../../content/pages/Page");
45
+ const Discussion_1 = require("../../content/discussions/Discussion");
46
+ const Assignment_1 = require("../../content/assignments/Assignment");
47
+ const AssignmentKind_1 = __importDefault(require("../../content/assignments/AssignmentKind"));
48
+ const QuizKind_1 = __importDefault(require("../../content/quizzes/QuizKind"));
49
+ const PageKind_1 = __importDefault(require("../../content/pages/PageKind"));
50
+ const DiscussionKind_1 = __importDefault(require("../../content/discussions/DiscussionKind"));
51
+ jest.mock('@/fetch/fetchJson', () => ({
52
+ fetchJson: jest.fn(),
53
+ }));
54
+ describe('getContentClassFromUrl', () => {
55
+ it('should return Assignment class when URL includes assignment', () => {
56
+ const url = 'https://example.com/assignments';
57
+ expect((0, determineContent_1.getContentClassFromUrl)(url)).toBe(Assignment_1.Assignment);
58
+ });
59
+ it('should return Quiz class when URL includes quiz', () => {
60
+ const url = 'https://example.com/quizzes';
61
+ expect((0, determineContent_1.getContentClassFromUrl)(url)).toBe(Quiz_1.Quiz);
62
+ });
63
+ it('should return Page class when URL includes page', () => {
64
+ const url = 'https://example.com/pages';
65
+ expect((0, determineContent_1.getContentClassFromUrl)(url)).toBe(Page_1.Page);
66
+ });
67
+ it('should return Discussion class when URL includes discussion', () => {
68
+ const url = 'https://example.com/discussion_topics';
69
+ expect((0, determineContent_1.getContentClassFromUrl)(url)).toBe(Discussion_1.Discussion);
70
+ });
71
+ it('should return null when URL does not match any class', () => {
72
+ const url = 'https://example.com/unknown';
73
+ expect((0, determineContent_1.getContentClassFromUrl)(url)).toBe(null);
74
+ });
75
+ });
76
+ describe('getContentItemFromUrl', () => {
77
+ let getContentApi;
78
+ beforeEach(async () => {
79
+ getContentApi = await Promise.resolve().then(() => __importStar(require('../determineContent')));
80
+ });
81
+ it('should return null if getContentClassFromUrl returns null', async () => {
82
+ const result = await (0, determineContent_1.getContentItemFromUrl)('https://example.com');
83
+ expect(result).toBe(null);
84
+ });
85
+ it('should call getAssignment from an assignment url', async () => {
86
+ const url = 'https://example.com/assignments';
87
+ const contentClass = (0, determineContent_1.getContentClassFromUrl)(url);
88
+ (0, assert_1.default)(contentClass !== null);
89
+ const getAssignmentSpy = jest.spyOn(contentClass, 'getFromUrl');
90
+ fetchJson_1.fetchJson.mockResolvedValue(mockContentData_1.mockAssignmentData);
91
+ const assignment = await (0, determineContent_1.getContentItemFromUrl)(url);
92
+ expect(getAssignmentSpy).toHaveBeenCalledWith(url);
93
+ });
94
+ });
95
+ describe('getContentKindFromUrl', () => {
96
+ it('Finds Assignments', () => {
97
+ expect((0, determineContent_1.getContentKindFromUrl)('/api/v1/courses/1/assignments/5')).toEqual(AssignmentKind_1.default);
98
+ });
99
+ it('Finds Discussions', () => {
100
+ expect((0, determineContent_1.getContentKindFromUrl)('/api/v1/courses/1/discussion_topics/5')).toEqual(DiscussionKind_1.default);
101
+ });
102
+ it('Finds Quizzes', () => {
103
+ expect((0, determineContent_1.getContentKindFromUrl)('/api/v1/courses/1/quizzes/5')).toEqual(QuizKind_1.default);
104
+ });
105
+ it('Finds Pages', () => {
106
+ expect((0, determineContent_1.getContentKindFromUrl)('/api/v1/courses/1/pages/5')).toEqual(PageKind_1.default);
107
+ });
108
+ });
109
+ describe('getContentKindFromContent', () => {
110
+ it('works for pages', () => expect((0, determineContent_1.getContentKindFromContent)(mockContentData_1.mockPageData)).toBe(PageKind_1.default));
111
+ it('works for discussions', () => expect((0, determineContent_1.getContentKindFromContent)(mockContentData_1.mockDiscussionData)).toBe(DiscussionKind_1.default));
112
+ it('works for assignments', () => expect((0, determineContent_1.getContentKindFromContent)(mockContentData_1.mockAssignmentData)).toBe(AssignmentKind_1.default));
113
+ it('works for quizzes', () => expect((0, determineContent_1.getContentKindFromContent)(mockContentData_1.mockQuizData)).toBe(QuizKind_1.default));
114
+ });
115
+ //# sourceMappingURL=determineContent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"determineContent.test.js","sourceRoot":"","sources":["../../../src/content/__tests__/determineContent.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const getContentFuncs_1 = require("../../content/getContentFuncs");
4
+ describe("Canvas Link Tests", () => {
5
+ const courseId = 12345;
6
+ it("should correctly identify file links within the course", () => {
7
+ const body = `
8
+ <div>
9
+ <a href="https://unity.instructure.com/files/12345">Course File 1</a>
10
+ <a href="https://unity.instructure.com/courses/12345/files/67890">Course File 2</a>
11
+ <a href="https://www.example.com/files/12345">External File</a>
12
+ </div>
13
+ `;
14
+ const fileLinks = (0, getContentFuncs_1.getFileLinks)(body, courseId);
15
+ expect(fileLinks.length).toBe(2);
16
+ expect(fileLinks[0]).toBe("https://unity.instructure.com/files/12345");
17
+ expect(fileLinks[1]).toBe("https://unity.instructure.com/courses/12345/files/67890");
18
+ });
19
+ it("should correctly identify external links", () => {
20
+ const body = `
21
+ <div>
22
+ <a href="https://unity.instructure.com/files/12345">Course File</a>
23
+ <a href="https://unity.instructure.com/courses/12345/files/67890">Course File</a>
24
+ <a href="https://www.example.com/page">External Page</a>
25
+ <a href="https://anotherexample.com/page">Another External Page</a>
26
+ </div>
27
+ `;
28
+ const externalLinks = (0, getContentFuncs_1.getExternalLinks)(body, courseId);
29
+ expect(externalLinks.length).toBe(2);
30
+ expect(externalLinks[0]).toBe("https://www.example.com/page");
31
+ expect(externalLinks[1]).toBe("https://anotherexample.com/page");
32
+ });
33
+ it("should handle an empty body", () => {
34
+ const body = ``;
35
+ const fileLinks = (0, getContentFuncs_1.getFileLinks)(body, courseId);
36
+ const externalLinks = (0, getContentFuncs_1.getExternalLinks)(body, courseId);
37
+ expect(fileLinks.length).toBe(0);
38
+ expect(externalLinks.length).toBe(0);
39
+ });
40
+ it("should handle a body with no links", () => {
41
+ const body = `<div>No links here</div>`;
42
+ const fileLinks = (0, getContentFuncs_1.getFileLinks)(body, courseId);
43
+ const externalLinks = (0, getContentFuncs_1.getExternalLinks)(body, courseId);
44
+ expect(fileLinks.length).toBe(0);
45
+ expect(externalLinks.length).toBe(0);
46
+ });
47
+ it("should handle mixed content correctly", () => {
48
+ const body = `
49
+ <div>
50
+ <a href="https://unity.instructure.com/files/12345">Course File</a>
51
+ <a href="https://www.example.com/page">External Page</a>
52
+ <a href="https://unity.instructure.com/courses/12345/files/67890">Course File</a>
53
+ <a href="https://anotherexample.com/page">Another External Page</a>
54
+ </div>
55
+ `;
56
+ const fileLinks = (0, getContentFuncs_1.getFileLinks)(body, courseId);
57
+ const externalLinks = (0, getContentFuncs_1.getExternalLinks)(body, courseId);
58
+ expect(fileLinks.length).toBe(2);
59
+ expect(fileLinks[0]).toBe("https://unity.instructure.com/files/12345");
60
+ expect(fileLinks[1]).toBe("https://unity.instructure.com/courses/12345/files/67890");
61
+ expect(externalLinks.length).toBe(2);
62
+ expect(externalLinks[0]).toBe("https://www.example.com/page");
63
+ expect(externalLinks[1]).toBe("https://anotherexample.com/page");
64
+ });
65
+ });
66
+ //# sourceMappingURL=getContentFuncs.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getContentFuncs.test.js","sourceRoot":"","sources":["../../../src/content/__tests__/getContentFuncs.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { BaseContentItem } from "@/content/BaseContentItem";
2
- import { ICanvasCallConfig } from "@/canvasUtils";
3
- import { IAssignmentData } from "@canvas/content/types";
1
+ import { BaseContentItem } from "../../content/BaseContentItem";
2
+ import { ICanvasCallConfig } from "../../canvasUtils";
3
+ import { IAssignmentData } from "../../content/types";
4
4
  export declare class Assignment extends BaseContentItem {
5
- static kind: import("..").ContentKind<IAssignmentData, import("../..").CanvasData, import("@canvas/content/types").UpdateAssignmentDataOptions>;
5
+ static kind: import("..").ContentKind<IAssignmentData, import("../..").CanvasData, import("../../content/types").UpdateAssignmentDataOptions>;
6
6
  static nameProperty: string;
7
7
  static bodyProperty: string;
8
8
  static contentUrlTemplate: string;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Assignment = void 0;
7
+ const BaseContentItem_1 = require("../../content/BaseContentItem");
8
+ const temporal_polyfill_1 = require("temporal-polyfill");
9
+ const assert_1 = __importDefault(require("assert"));
10
+ const AssignmentKind_1 = __importDefault(require("../../content/assignments/AssignmentKind"));
11
+ class Assignment extends BaseContentItem_1.BaseContentItem {
12
+ static kind = AssignmentKind_1.default;
13
+ static nameProperty = 'name';
14
+ static bodyProperty = 'description';
15
+ static contentUrlTemplate = "/api/v1/courses/{course_id}/assignments/{content_id}";
16
+ static allContentUrlTemplate = "/api/v1/courses/{course_id}/assignments";
17
+ constructor(assignmentData, courseId) {
18
+ super(assignmentData, courseId);
19
+ }
20
+ async setDueAt(dueAt, config) {
21
+ const sourceDueAt = this.rawData.due_at ? temporal_polyfill_1.Temporal.Instant.from(this.rawData.due_at) : null;
22
+ const targetDueAt = temporal_polyfill_1.Temporal.Instant.from(dueAt.toISOString());
23
+ const payload = {
24
+ assignment: {
25
+ due_at: dueAt.toISOString(),
26
+ }
27
+ };
28
+ if (this.rawData.peer_reviews && 'automatic_peer_reviews' in this.rawData) {
29
+ const peerReviewTime = this.rawData.peer_reviews_assign_at ? temporal_polyfill_1.Temporal.Instant.from(this.rawData.peer_reviews_assign_at) : null;
30
+ (0, assert_1.default)(sourceDueAt, "Trying to set peer review date without a due date for the assignment.");
31
+ if (peerReviewTime) {
32
+ const peerReviewOffset = sourceDueAt.until(peerReviewTime);
33
+ const newPeerReviewTime = targetDueAt.add(peerReviewOffset);
34
+ payload.assignment.peer_reviews_assign_at =
35
+ new Date(newPeerReviewTime.epochMilliseconds).toISOString();
36
+ }
37
+ }
38
+ const data = await this.saveData(payload, config);
39
+ this.canvasData['due_at'] = dueAt.toISOString();
40
+ return data;
41
+ }
42
+ get rawData() {
43
+ return this.canvasData;
44
+ }
45
+ async updateContent(text, name, config) {
46
+ const assignmentData = {};
47
+ if (text) {
48
+ assignmentData.description = text;
49
+ this.rawData.description = text;
50
+ }
51
+ if (name) {
52
+ assignmentData.name = name;
53
+ this.rawData.name = name;
54
+ }
55
+ return await this.saveData({
56
+ assignment: assignmentData
57
+ }, config);
58
+ }
59
+ }
60
+ exports.Assignment = Assignment;
61
+ //# sourceMappingURL=Assignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Assignment.js","sourceRoot":"","sources":["../../../src/content/assignments/Assignment.ts"],"names":[],"mappings":";;;;;;AAAA,+DAA0D;AAE1D,yDAA2C;AAC3C,oDAA4B;AAC5B,0FAAkE;AAGlE,MAAa,UAAW,SAAQ,iCAAe;IAC3C,MAAM,CAAC,IAAI,GAAG,wBAAc,CAAC;IAC7B,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC;IACpC,MAAM,CAAC,kBAAkB,GAAG,sDAAsD,CAAC;IACnF,MAAM,CAAC,qBAAqB,GAAG,yCAAyC,CAAC;IAEzE,YAAY,cAA+B,EAAE,QAAgB;QACzD,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAW,EAAE,MAA0B;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,4BAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,MAAM,WAAW,GAAG,4BAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAwE;YACjF,UAAU,EAAE;gBACR,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE;aAC9B;SACJ,CAAA;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,wBAAwB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,4BAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/H,IAAA,gBAAM,EAAC,WAAW,EAAE,uEAAuE,CAAC,CAAA;YAC5F,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC3D,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,OAAO,CAAC,UAAU,CAAC,sBAAsB;oBACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,CAAC;QAEL,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAGlD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IAEhB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,UAA6B,CAAC;IAC9C,CAAC;IAGD,KAAK,CAAC,aAAa,CAAC,IAAoB,EAAE,IAAoB,EAAE,MAA0B;QACtF,MAAM,cAAc,GAAwB,EAAE,CAAC;QAC/C,IAAI,IAAI,EAAE,CAAC;YACP,cAAc,CAAC,WAAW,GAAG,IAAI,CAAA;YACjC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;QACnC,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACP,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC;YACvB,UAAU,EAAE,cAAc;SAC7B,EAAE,MAAM,CAAC,CAAA;IACd,CAAC;;AA5DL,gCA6DC"}
@@ -1,6 +1,6 @@
1
- import { CanvasData } from "@/canvasDataDefs";
2
- import { ContentKind } from "@/content/ContentKind";
3
- import { IAssignmentData, UpdateAssignmentDataOptions } from "@canvas/content/types";
1
+ import { CanvasData } from "../../canvasDataDefs";
2
+ import { ContentKind } from "../../content/ContentKind";
3
+ import { IAssignmentData, UpdateAssignmentDataOptions } from "../../content/types";
4
4
  export declare const assignmentUrlFuncs: {
5
5
  contentUrlPart: string;
6
6
  getApiUrl: (courseId: number, contentId: number) => string;