@eduware/oneroster 1.2.4 → 1.2.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.
- package/FUNCTIONS.md +232 -0
- package/README.md +493 -334
- package/bin/mcp-server.js +338 -1328
- package/bin/mcp-server.js.map +22 -21
- package/dist/commonjs/enums/index.d.ts +2 -0
- package/dist/commonjs/enums/index.d.ts.map +1 -0
- package/dist/commonjs/enums/index.js +18 -0
- package/dist/commonjs/enums/index.js.map +1 -0
- package/dist/commonjs/index.d.ts +4 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +41 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/models/errors/index.d.ts +1 -0
- package/dist/commonjs/models/errors/index.d.ts.map +1 -1
- package/dist/commonjs/models/errors/index.js +1 -0
- package/dist/commonjs/models/errors/index.js.map +1 -1
- package/dist/commonjs/models/index.d.ts +2 -0
- package/dist/commonjs/models/index.d.ts.map +1 -0
- package/dist/commonjs/models/index.js +18 -0
- package/dist/commonjs/models/index.js.map +1 -0
- package/dist/commonjs/models/operations/createuser.d.ts +8 -270
- package/dist/commonjs/models/operations/createuser.d.ts.map +1 -1
- package/dist/commonjs/models/operations/createuser.js +17 -178
- package/dist/commonjs/models/operations/createuser.js.map +1 -1
- package/dist/commonjs/models/operations/getallstudents.d.ts +6 -206
- package/dist/commonjs/models/operations/getallstudents.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getallstudents.js +12 -132
- package/dist/commonjs/models/operations/getallstudents.js.map +1 -1
- package/dist/commonjs/models/operations/getallteachers.d.ts +6 -206
- package/dist/commonjs/models/operations/getallteachers.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getallteachers.js +12 -132
- package/dist/commonjs/models/operations/getallteachers.js.map +1 -1
- package/dist/commonjs/models/operations/getallusers.d.ts +6 -206
- package/dist/commonjs/models/operations/getallusers.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getallusers.js +12 -132
- package/dist/commonjs/models/operations/getallusers.js.map +1 -1
- package/dist/commonjs/models/operations/getclassesforuser.d.ts +4 -85
- package/dist/commonjs/models/operations/getclassesforuser.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getclassesforuser.js +8 -67
- package/dist/commonjs/models/operations/getclassesforuser.js.map +1 -1
- package/dist/commonjs/models/operations/getresourcesforuser.d.ts +5 -111
- package/dist/commonjs/models/operations/getresourcesforuser.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getresourcesforuser.js +10 -88
- package/dist/commonjs/models/operations/getresourcesforuser.js.map +1 -1
- package/dist/commonjs/models/operations/getstudent.d.ts +5 -174
- package/dist/commonjs/models/operations/getstudent.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getstudent.js +10 -108
- package/dist/commonjs/models/operations/getstudent.js.map +1 -1
- package/dist/commonjs/models/operations/getstudentsforclass.d.ts +6 -206
- package/dist/commonjs/models/operations/getstudentsforclass.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getstudentsforclass.js +12 -132
- package/dist/commonjs/models/operations/getstudentsforclass.js.map +1 -1
- package/dist/commonjs/models/operations/getstudentsforclassinschool.d.ts +6 -206
- package/dist/commonjs/models/operations/getstudentsforclassinschool.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getstudentsforclassinschool.js +12 -132
- package/dist/commonjs/models/operations/getstudentsforclassinschool.js.map +1 -1
- package/dist/commonjs/models/operations/getstudentsforschool.d.ts +6 -206
- package/dist/commonjs/models/operations/getstudentsforschool.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getstudentsforschool.js +12 -132
- package/dist/commonjs/models/operations/getstudentsforschool.js.map +1 -1
- package/dist/commonjs/models/operations/getteacher.d.ts +5 -174
- package/dist/commonjs/models/operations/getteacher.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getteacher.js +10 -108
- package/dist/commonjs/models/operations/getteacher.js.map +1 -1
- package/dist/commonjs/models/operations/getteachersforclass.d.ts +6 -206
- package/dist/commonjs/models/operations/getteachersforclass.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getteachersforclass.js +12 -132
- package/dist/commonjs/models/operations/getteachersforclass.js.map +1 -1
- package/dist/commonjs/models/operations/getteachersforclassinschool.d.ts +6 -206
- package/dist/commonjs/models/operations/getteachersforclassinschool.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getteachersforclassinschool.js +12 -132
- package/dist/commonjs/models/operations/getteachersforclassinschool.js.map +1 -1
- package/dist/commonjs/models/operations/getteachersforschool.d.ts +6 -206
- package/dist/commonjs/models/operations/getteachersforschool.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getteachersforschool.js +12 -132
- package/dist/commonjs/models/operations/getteachersforschool.js.map +1 -1
- package/dist/commonjs/models/operations/getuser.d.ts +5 -174
- package/dist/commonjs/models/operations/getuser.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getuser.js +10 -108
- package/dist/commonjs/models/operations/getuser.js.map +1 -1
- package/dist/commonjs/models/operations/getuserwithdemographics.d.ts +5 -174
- package/dist/commonjs/models/operations/getuserwithdemographics.d.ts.map +1 -1
- package/dist/commonjs/models/operations/getuserwithdemographics.js +10 -108
- package/dist/commonjs/models/operations/getuserwithdemographics.js.map +1 -1
- package/dist/commonjs/models/operations/updateuser.d.ts +8 -270
- package/dist/commonjs/models/operations/updateuser.d.ts.map +1 -1
- package/dist/commonjs/models/operations/updateuser.js +17 -178
- package/dist/commonjs/models/operations/updateuser.js.map +1 -1
- package/dist/commonjs/models/shared/enums.d.ts +440 -0
- package/dist/commonjs/models/shared/enums.d.ts.map +1 -0
- package/dist/commonjs/models/shared/enums.js +499 -0
- package/dist/commonjs/models/shared/enums.js.map +1 -0
- package/dist/commonjs/models/shared/index.d.ts +8 -0
- package/dist/commonjs/models/shared/index.d.ts.map +1 -0
- package/dist/commonjs/models/shared/index.js +24 -0
- package/dist/commonjs/models/shared/index.js.map +1 -0
- package/dist/commonjs/types/index.d.ts +1 -0
- package/dist/commonjs/types/index.d.ts.map +1 -1
- package/dist/commonjs/types/index.js +16 -0
- package/dist/commonjs/types/index.js.map +1 -1
- package/dist/esm/enums/index.d.ts +2 -0
- package/dist/esm/enums/index.d.ts.map +1 -0
- package/dist/esm/enums/index.js +2 -0
- package/dist/esm/enums/index.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/errors/index.d.ts +1 -0
- package/dist/esm/models/errors/index.d.ts.map +1 -1
- package/dist/esm/models/errors/index.js +1 -0
- package/dist/esm/models/errors/index.js.map +1 -1
- package/dist/esm/models/index.d.ts +2 -0
- package/dist/esm/models/index.d.ts.map +1 -0
- package/dist/esm/models/index.js +2 -0
- package/dist/esm/models/index.js.map +1 -0
- package/dist/esm/models/operations/createuser.d.ts +8 -270
- package/dist/esm/models/operations/createuser.d.ts.map +1 -1
- package/dist/esm/models/operations/createuser.js +15 -176
- package/dist/esm/models/operations/createuser.js.map +1 -1
- package/dist/esm/models/operations/getallstudents.d.ts +6 -206
- package/dist/esm/models/operations/getallstudents.d.ts.map +1 -1
- package/dist/esm/models/operations/getallstudents.js +11 -131
- package/dist/esm/models/operations/getallstudents.js.map +1 -1
- package/dist/esm/models/operations/getallteachers.d.ts +6 -206
- package/dist/esm/models/operations/getallteachers.d.ts.map +1 -1
- package/dist/esm/models/operations/getallteachers.js +11 -131
- package/dist/esm/models/operations/getallteachers.js.map +1 -1
- package/dist/esm/models/operations/getallusers.d.ts +6 -206
- package/dist/esm/models/operations/getallusers.d.ts.map +1 -1
- package/dist/esm/models/operations/getallusers.js +11 -131
- package/dist/esm/models/operations/getallusers.js.map +1 -1
- package/dist/esm/models/operations/getclassesforuser.d.ts +4 -85
- package/dist/esm/models/operations/getclassesforuser.d.ts.map +1 -1
- package/dist/esm/models/operations/getclassesforuser.js +7 -66
- package/dist/esm/models/operations/getclassesforuser.js.map +1 -1
- package/dist/esm/models/operations/getresourcesforuser.d.ts +5 -111
- package/dist/esm/models/operations/getresourcesforuser.d.ts.map +1 -1
- package/dist/esm/models/operations/getresourcesforuser.js +9 -87
- package/dist/esm/models/operations/getresourcesforuser.js.map +1 -1
- package/dist/esm/models/operations/getstudent.d.ts +5 -174
- package/dist/esm/models/operations/getstudent.d.ts.map +1 -1
- package/dist/esm/models/operations/getstudent.js +9 -107
- package/dist/esm/models/operations/getstudent.js.map +1 -1
- package/dist/esm/models/operations/getstudentsforclass.d.ts +6 -206
- package/dist/esm/models/operations/getstudentsforclass.d.ts.map +1 -1
- package/dist/esm/models/operations/getstudentsforclass.js +11 -131
- package/dist/esm/models/operations/getstudentsforclass.js.map +1 -1
- package/dist/esm/models/operations/getstudentsforclassinschool.d.ts +6 -206
- package/dist/esm/models/operations/getstudentsforclassinschool.d.ts.map +1 -1
- package/dist/esm/models/operations/getstudentsforclassinschool.js +11 -131
- package/dist/esm/models/operations/getstudentsforclassinschool.js.map +1 -1
- package/dist/esm/models/operations/getstudentsforschool.d.ts +6 -206
- package/dist/esm/models/operations/getstudentsforschool.d.ts.map +1 -1
- package/dist/esm/models/operations/getstudentsforschool.js +11 -131
- package/dist/esm/models/operations/getstudentsforschool.js.map +1 -1
- package/dist/esm/models/operations/getteacher.d.ts +5 -174
- package/dist/esm/models/operations/getteacher.d.ts.map +1 -1
- package/dist/esm/models/operations/getteacher.js +9 -107
- package/dist/esm/models/operations/getteacher.js.map +1 -1
- package/dist/esm/models/operations/getteachersforclass.d.ts +6 -206
- package/dist/esm/models/operations/getteachersforclass.d.ts.map +1 -1
- package/dist/esm/models/operations/getteachersforclass.js +11 -131
- package/dist/esm/models/operations/getteachersforclass.js.map +1 -1
- package/dist/esm/models/operations/getteachersforclassinschool.d.ts +6 -206
- package/dist/esm/models/operations/getteachersforclassinschool.d.ts.map +1 -1
- package/dist/esm/models/operations/getteachersforclassinschool.js +11 -131
- package/dist/esm/models/operations/getteachersforclassinschool.js.map +1 -1
- package/dist/esm/models/operations/getteachersforschool.d.ts +6 -206
- package/dist/esm/models/operations/getteachersforschool.d.ts.map +1 -1
- package/dist/esm/models/operations/getteachersforschool.js +11 -131
- package/dist/esm/models/operations/getteachersforschool.js.map +1 -1
- package/dist/esm/models/operations/getuser.d.ts +5 -174
- package/dist/esm/models/operations/getuser.d.ts.map +1 -1
- package/dist/esm/models/operations/getuser.js +9 -107
- package/dist/esm/models/operations/getuser.js.map +1 -1
- package/dist/esm/models/operations/getuserwithdemographics.d.ts +5 -174
- package/dist/esm/models/operations/getuserwithdemographics.d.ts.map +1 -1
- package/dist/esm/models/operations/getuserwithdemographics.js +9 -107
- package/dist/esm/models/operations/getuserwithdemographics.js.map +1 -1
- package/dist/esm/models/operations/updateuser.d.ts +8 -270
- package/dist/esm/models/operations/updateuser.d.ts.map +1 -1
- package/dist/esm/models/operations/updateuser.js +15 -176
- package/dist/esm/models/operations/updateuser.js.map +1 -1
- package/dist/esm/models/shared/enums.d.ts +440 -0
- package/dist/esm/models/shared/enums.d.ts.map +1 -0
- package/dist/esm/models/shared/enums.js +462 -0
- package/dist/esm/models/shared/enums.js.map +1 -0
- package/dist/esm/models/shared/index.d.ts +8 -0
- package/dist/esm/models/shared/index.d.ts.map +1 -0
- package/dist/esm/models/shared/index.js +8 -0
- package/dist/esm/models/shared/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -1
- package/package.json +37 -64
- package/src/enums/index.ts +1 -0
- package/src/index.ts +44 -0
- package/src/models/errors/index.ts +1 -0
- package/src/models/index.ts +1 -0
- package/src/models/operations/createuser.ts +35 -238
- package/src/models/operations/getallstudents.ts +32 -170
- package/src/models/operations/getallteachers.ts +32 -170
- package/src/models/operations/getallusers.ts +32 -170
- package/src/models/operations/getclassesforuser.ts +20 -97
- package/src/models/operations/getresourcesforuser.ts +26 -127
- package/src/models/operations/getstudent.ts +26 -136
- package/src/models/operations/getstudentsforclass.ts +32 -180
- package/src/models/operations/getstudentsforclassinschool.ts +32 -188
- package/src/models/operations/getstudentsforschool.ts +32 -180
- package/src/models/operations/getteacher.ts +26 -136
- package/src/models/operations/getteachersforclass.ts +32 -180
- package/src/models/operations/getteachersforclassinschool.ts +32 -188
- package/src/models/operations/getteachersforschool.ts +32 -180
- package/src/models/operations/getuser.ts +26 -136
- package/src/models/operations/getuserwithdemographics.ts +26 -144
- package/src/models/operations/updateuser.ts +35 -238
- package/src/models/shared/enums.ts +567 -0
- package/src/models/shared/index.ts +8 -0
- package/src/types/index.ts +3 -0
- package/test/classlink.test.ts +26 -26
- package/vitest.config.ts +2 -2
- package/test/summary-reporter.ts +0 -114
package/test/classlink.test.ts
CHANGED
|
@@ -199,7 +199,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
199
199
|
it('orgs', async () => {
|
|
200
200
|
try {
|
|
201
201
|
for await (const page of await client.organizationsManagement.getAllOrgs({
|
|
202
|
-
limit:
|
|
202
|
+
limit: 5,
|
|
203
203
|
})) {
|
|
204
204
|
expect(Array.isArray(page.result.orgs || [])).toBe(true);
|
|
205
205
|
recordResult(authType, 'orgs', 'passed');
|
|
@@ -214,7 +214,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
214
214
|
it('schools', async () => {
|
|
215
215
|
try {
|
|
216
216
|
for await (const page of await client.schoolsManagement.getAllSchools({
|
|
217
|
-
limit:
|
|
217
|
+
limit: 5,
|
|
218
218
|
})) {
|
|
219
219
|
const items = page.result.orgs || [];
|
|
220
220
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -231,7 +231,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
231
231
|
it('courses', async () => {
|
|
232
232
|
try {
|
|
233
233
|
for await (const page of await client.coursesManagement.getAllCourses({
|
|
234
|
-
limit:
|
|
234
|
+
limit: 5,
|
|
235
235
|
})) {
|
|
236
236
|
const items = page.result.courses || [];
|
|
237
237
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -248,7 +248,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
248
248
|
it('classes', async () => {
|
|
249
249
|
try {
|
|
250
250
|
for await (const page of await client.classesManagement.getAllClasses({
|
|
251
|
-
limit:
|
|
251
|
+
limit: 5,
|
|
252
252
|
})) {
|
|
253
253
|
const items = page.result.classes || [];
|
|
254
254
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -265,7 +265,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
265
265
|
it('users', async () => {
|
|
266
266
|
try {
|
|
267
267
|
for await (const page of await client.usersManagement.getAllUsers({
|
|
268
|
-
limit:
|
|
268
|
+
limit: 5,
|
|
269
269
|
})) {
|
|
270
270
|
const items = page.result.users || [];
|
|
271
271
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -282,7 +282,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
282
282
|
it('students', async () => {
|
|
283
283
|
try {
|
|
284
284
|
for await (const page of await client.studentsManagement.getAllStudents({
|
|
285
|
-
limit:
|
|
285
|
+
limit: 5,
|
|
286
286
|
})) {
|
|
287
287
|
const items = page.result.users || [];
|
|
288
288
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -299,7 +299,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
299
299
|
it('teachers', async () => {
|
|
300
300
|
try {
|
|
301
301
|
for await (const page of await client.teachersManagement.getAllTeachers({
|
|
302
|
-
limit:
|
|
302
|
+
limit: 5,
|
|
303
303
|
})) {
|
|
304
304
|
const items = page.result.users || [];
|
|
305
305
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -316,7 +316,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
316
316
|
it('enrollments', async () => {
|
|
317
317
|
try {
|
|
318
318
|
for await (const page of await client.enrollmentsManagement.getAllEnrollments({
|
|
319
|
-
limit:
|
|
319
|
+
limit: 5,
|
|
320
320
|
})) {
|
|
321
321
|
expect(Array.isArray(page.result.enrollments || [])).toBe(true);
|
|
322
322
|
recordResult(authType, 'enrollments', 'passed');
|
|
@@ -331,7 +331,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
331
331
|
it('terms', async () => {
|
|
332
332
|
try {
|
|
333
333
|
for await (const page of await client.termsManagement.getAllTerms({
|
|
334
|
-
limit:
|
|
334
|
+
limit: 5,
|
|
335
335
|
})) {
|
|
336
336
|
const items = page.result.academicSessions || [];
|
|
337
337
|
expect(Array.isArray(items)).toBe(true);
|
|
@@ -370,7 +370,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
370
370
|
try {
|
|
371
371
|
for await (const page of await client.classesManagement.getClassesForSchool({
|
|
372
372
|
schoolSourcedId: schoolId,
|
|
373
|
-
limit:
|
|
373
|
+
limit: 5,
|
|
374
374
|
})) {
|
|
375
375
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
376
376
|
recordResult(authType, 'schools/{id}/classes', 'passed');
|
|
@@ -390,7 +390,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
390
390
|
try {
|
|
391
391
|
for await (const page of await client.schoolsManagement.getStudentsForSchool({
|
|
392
392
|
schoolSourcedId: schoolId,
|
|
393
|
-
limit:
|
|
393
|
+
limit: 5,
|
|
394
394
|
})) {
|
|
395
395
|
expect(Array.isArray(page.result.users || [])).toBe(true);
|
|
396
396
|
recordResult(authType, 'schools/{id}/students', 'passed');
|
|
@@ -415,7 +415,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
415
415
|
try {
|
|
416
416
|
for await (const page of await client.schoolsManagement.getTeachersForSchool({
|
|
417
417
|
schoolSourcedId: schoolId,
|
|
418
|
-
limit:
|
|
418
|
+
limit: 5,
|
|
419
419
|
})) {
|
|
420
420
|
expect(Array.isArray(page.result.users || [])).toBe(true);
|
|
421
421
|
recordResult(authType, 'schools/{id}/teachers', 'passed');
|
|
@@ -440,7 +440,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
440
440
|
try {
|
|
441
441
|
for await (const page of await client.schoolsManagement.getCoursesForSchool({
|
|
442
442
|
schoolSourcedId: schoolId,
|
|
443
|
-
limit:
|
|
443
|
+
limit: 5,
|
|
444
444
|
})) {
|
|
445
445
|
expect(Array.isArray(page.result.courses || [])).toBe(true);
|
|
446
446
|
recordResult(authType, 'schools/{id}/courses', 'passed');
|
|
@@ -460,7 +460,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
460
460
|
try {
|
|
461
461
|
for await (const page of await client.schoolsManagement.getTermsForSchool({
|
|
462
462
|
schoolSourcedId: schoolId,
|
|
463
|
-
limit:
|
|
463
|
+
limit: 5,
|
|
464
464
|
})) {
|
|
465
465
|
expect(Array.isArray(page.result.academicSessions || [])).toBe(true);
|
|
466
466
|
recordResult(authType, 'schools/{id}/terms', 'passed');
|
|
@@ -480,7 +480,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
480
480
|
try {
|
|
481
481
|
for await (const page of await client.classesManagement.getStudentsForClass({
|
|
482
482
|
classSourcedId: classId,
|
|
483
|
-
limit:
|
|
483
|
+
limit: 5,
|
|
484
484
|
})) {
|
|
485
485
|
expect(Array.isArray(page.result.users || [])).toBe(true);
|
|
486
486
|
recordResult(authType, 'classes/{id}/students', 'passed');
|
|
@@ -505,7 +505,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
505
505
|
try {
|
|
506
506
|
for await (const page of await client.classesManagement.getTeachersForClass({
|
|
507
507
|
classSourcedId: classId,
|
|
508
|
-
limit:
|
|
508
|
+
limit: 5,
|
|
509
509
|
})) {
|
|
510
510
|
expect(Array.isArray(page.result.users || [])).toBe(true);
|
|
511
511
|
recordResult(authType, 'classes/{id}/teachers', 'passed');
|
|
@@ -530,7 +530,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
530
530
|
try {
|
|
531
531
|
for await (const page of await client.classesManagement.getClassesForUser({
|
|
532
532
|
userSourcedId: userId,
|
|
533
|
-
limit:
|
|
533
|
+
limit: 5,
|
|
534
534
|
})) {
|
|
535
535
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
536
536
|
recordResult(authType, 'users/{id}/classes', 'passed');
|
|
@@ -550,7 +550,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
550
550
|
try {
|
|
551
551
|
for await (const page of await client.classesManagement.getClassesForTeacher({
|
|
552
552
|
teacherSourcedId: teacherId,
|
|
553
|
-
limit:
|
|
553
|
+
limit: 5,
|
|
554
554
|
})) {
|
|
555
555
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
556
556
|
recordResult(authType, 'teachers/{id}/classes', 'passed');
|
|
@@ -575,7 +575,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
575
575
|
try {
|
|
576
576
|
for await (const page of await client.classesManagement.getClassesForStudent({
|
|
577
577
|
studentSourcedId: studentId,
|
|
578
|
-
limit:
|
|
578
|
+
limit: 5,
|
|
579
579
|
})) {
|
|
580
580
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
581
581
|
recordResult(authType, 'students/{id}/classes', 'passed');
|
|
@@ -600,7 +600,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
600
600
|
try {
|
|
601
601
|
for await (const page of await client.classesManagement.getClassesForTerm({
|
|
602
602
|
termSourcedId: termId,
|
|
603
|
-
limit:
|
|
603
|
+
limit: 5,
|
|
604
604
|
})) {
|
|
605
605
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
606
606
|
recordResult(authType, 'terms/{id}/classes', 'passed');
|
|
@@ -620,7 +620,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
620
620
|
try {
|
|
621
621
|
for await (const page of await client.coursesManagement.getClassesForCourse({
|
|
622
622
|
courseSourcedId: courseId,
|
|
623
|
-
limit:
|
|
623
|
+
limit: 5,
|
|
624
624
|
})) {
|
|
625
625
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
626
626
|
recordResult(authType, 'courses/{id}/classes', 'passed');
|
|
@@ -640,7 +640,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
640
640
|
try {
|
|
641
641
|
for await (const page of await client.termsManagement.getGradingPeriodsForTerm({
|
|
642
642
|
termSourcedId: termId,
|
|
643
|
-
limit:
|
|
643
|
+
limit: 5,
|
|
644
644
|
})) {
|
|
645
645
|
expect(Array.isArray(page.result.academicSessions || [])).toBe(true);
|
|
646
646
|
recordResult(authType, 'terms/{id}/gradingPeriods', 'passed');
|
|
@@ -669,7 +669,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
669
669
|
try {
|
|
670
670
|
for await (const page of await client.classesManagement.getClassesForTerm({
|
|
671
671
|
termSourcedId: termId,
|
|
672
|
-
limit:
|
|
672
|
+
limit: 5,
|
|
673
673
|
})) {
|
|
674
674
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
675
675
|
recordResult(authType, 'GET /terms/{id}/classes', 'passed');
|
|
@@ -699,7 +699,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
699
699
|
try {
|
|
700
700
|
for await (const page of await client.coursesManagement.getClassesForCourse({
|
|
701
701
|
courseSourcedId: courseId,
|
|
702
|
-
limit:
|
|
702
|
+
limit: 5,
|
|
703
703
|
})) {
|
|
704
704
|
expect(Array.isArray(page.result.classes || [])).toBe(true);
|
|
705
705
|
recordResult(authType, 'GET /courses/{id}/classes', 'passed');
|
|
@@ -729,7 +729,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
729
729
|
try {
|
|
730
730
|
for await (const page of await client.termsManagement.getGradingPeriodsForTerm({
|
|
731
731
|
termSourcedId: termId,
|
|
732
|
-
limit:
|
|
732
|
+
limit: 20,
|
|
733
733
|
})) {
|
|
734
734
|
expect(Array.isArray(page.result.academicSessions || [])).toBe(true);
|
|
735
735
|
recordResult(authType, 'GET /terms/{id}/gradingPeriods', 'passed');
|
|
@@ -751,7 +751,7 @@ function createAPITestSuite(config: AuthConfig) {
|
|
|
751
751
|
it('should include totalCount from X-Total-Count header', async () => {
|
|
752
752
|
try {
|
|
753
753
|
for await (const page of await client.usersManagement.getAllUsers({
|
|
754
|
-
limit:
|
|
754
|
+
limit: 100,
|
|
755
755
|
})) {
|
|
756
756
|
// totalCount is on the page object itself (from PaginationMeta), not on page.result
|
|
757
757
|
// It may be undefined if the server doesn't return the X-Total-Count header
|
package/vitest.config.ts
CHANGED
|
@@ -19,8 +19,8 @@ export default defineConfig({
|
|
|
19
19
|
DOTENV_CONFIG_PATH: './test/.env',
|
|
20
20
|
},
|
|
21
21
|
|
|
22
|
-
// Reporter options
|
|
23
|
-
reporters: ['default'
|
|
22
|
+
// Reporter options
|
|
23
|
+
reporters: ['default'],
|
|
24
24
|
|
|
25
25
|
// Globals (describe, it, expect, etc.)
|
|
26
26
|
globals: true,
|
package/test/summary-reporter.ts
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom Vitest Reporter that prints a summary of passed/failed endpoints
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { Reporter, File, Task } from 'vitest';
|
|
6
|
-
|
|
7
|
-
interface TestResult {
|
|
8
|
-
endpoint: string;
|
|
9
|
-
status: 'passed' | 'failed';
|
|
10
|
-
error?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default class SummaryReporter implements Reporter {
|
|
14
|
-
private results: Map<string, TestResult[]> = new Map();
|
|
15
|
-
|
|
16
|
-
onFinished(files?: File[]) {
|
|
17
|
-
if (!files) return;
|
|
18
|
-
|
|
19
|
-
// Process all test results
|
|
20
|
-
for (const file of files) {
|
|
21
|
-
this.processFile(file);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Print summary
|
|
25
|
-
this.printSummary();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private processFile(file: File) {
|
|
29
|
-
for (const task of file.tasks) {
|
|
30
|
-
this.processTask(task, null);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
private processTask(task: Task, authType: string | null) {
|
|
35
|
-
// Check if this is an auth type suite (e.g., "OAUTH1 API Operations")
|
|
36
|
-
const authMatch = task.name.match(/^(OAUTH1|OAUTH2|BEARER) API Operations$/);
|
|
37
|
-
if (authMatch) {
|
|
38
|
-
authType = authMatch[1]!;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (task.type === 'suite' && 'tasks' in task && task.tasks) {
|
|
42
|
-
for (const child of task.tasks) {
|
|
43
|
-
this.processTask(child, authType);
|
|
44
|
-
}
|
|
45
|
-
} else if (task.type === 'test' && authType) {
|
|
46
|
-
const passed = task.result?.state === 'pass';
|
|
47
|
-
const errorMsg = this.getShortError(task.result?.errors?.[0]?.message);
|
|
48
|
-
this.recordResult(authType, task.name, passed ? 'passed' : 'failed', errorMsg);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
private getShortError(error?: string): string | undefined {
|
|
53
|
-
if (!error) return undefined;
|
|
54
|
-
if (error.includes('404')) return '404 Not Found';
|
|
55
|
-
if (error.includes('401')) return '401 Unauthorized';
|
|
56
|
-
if (error.includes('403')) return '403 Forbidden';
|
|
57
|
-
if (error.includes('ResponseValidationError') || error.includes('Zod'))
|
|
58
|
-
return 'Response validation';
|
|
59
|
-
if (error.length > 40) return error.substring(0, 37) + '...';
|
|
60
|
-
return error;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
private recordResult(
|
|
64
|
-
authType: string,
|
|
65
|
-
endpoint: string,
|
|
66
|
-
status: 'passed' | 'failed',
|
|
67
|
-
error?: string
|
|
68
|
-
) {
|
|
69
|
-
if (!this.results.has(authType)) {
|
|
70
|
-
this.results.set(authType, []);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Avoid duplicates
|
|
74
|
-
const existing = this.results.get(authType)!;
|
|
75
|
-
if (!existing.some((r) => r.endpoint === endpoint)) {
|
|
76
|
-
existing.push({ endpoint, status, error });
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
private printSummary() {
|
|
81
|
-
console.log('\n');
|
|
82
|
-
console.log('╔══════════════════════════════════════════════════════════════════╗');
|
|
83
|
-
console.log('║ TEST RESULTS SUMMARY ║');
|
|
84
|
-
console.log('╚══════════════════════════════════════════════════════════════════╝');
|
|
85
|
-
|
|
86
|
-
for (const [authType, results] of this.results) {
|
|
87
|
-
const passed = results.filter((r) => r.status === 'passed');
|
|
88
|
-
const failed = results.filter((r) => r.status === 'failed');
|
|
89
|
-
|
|
90
|
-
console.log(`\n┌──────────────────────────────────────────────────────────────────┐`);
|
|
91
|
-
console.log(
|
|
92
|
-
`│ ${authType.padEnd(10)} - ${String(passed.length).padStart(2)} passed, ${String(failed.length).padStart(2)} failed`
|
|
93
|
-
);
|
|
94
|
-
console.log(`└──────────────────────────────────────────────────────────────────┘`);
|
|
95
|
-
|
|
96
|
-
if (passed.length > 0) {
|
|
97
|
-
console.log('\n ✅ PASSED:');
|
|
98
|
-
for (const r of passed) {
|
|
99
|
-
console.log(` • ${r.endpoint}`);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (failed.length > 0) {
|
|
104
|
-
console.log('\n ❌ FAILED:');
|
|
105
|
-
for (const r of failed) {
|
|
106
|
-
const reason = r.error ? ` (${r.error})` : '';
|
|
107
|
-
console.log(` • ${r.endpoint}${reason}`);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
console.log('\n' + '═'.repeat(70) + '\n');
|
|
113
|
-
}
|
|
114
|
-
}
|