scorm-again 2.6.3 → 2.6.5
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/.claude/.claude/settings.local.json +13 -0
- package/.claude/settings.local.json +33 -0
- package/dist/aicc.js +38 -22
- package/dist/aicc.js.map +1 -1
- package/dist/aicc.min.js +1 -1
- package/dist/aicc.min.js.map +1 -1
- package/dist/esm/aicc.js +38 -22
- package/dist/esm/aicc.js.map +1 -1
- package/dist/esm/aicc.min.js +1 -1
- package/dist/esm/aicc.min.js.map +1 -1
- package/dist/esm/scorm-again.js +79 -47
- package/dist/esm/scorm-again.js.map +1 -1
- package/dist/esm/scorm-again.min.js +1 -1
- package/dist/esm/scorm-again.min.js.map +1 -1
- package/dist/esm/scorm12.js +35 -20
- package/dist/esm/scorm12.js.map +1 -1
- package/dist/esm/scorm12.min.js +1 -1
- package/dist/esm/scorm12.min.js.map +1 -1
- package/dist/esm/scorm2004.js +69 -41
- package/dist/esm/scorm2004.js.map +1 -1
- package/dist/esm/scorm2004.min.js +1 -1
- package/dist/esm/scorm2004.min.js.map +1 -1
- package/dist/scorm-again.js +79 -47
- package/dist/scorm-again.js.map +1 -1
- package/dist/scorm-again.min.js +1 -1
- package/dist/scorm-again.min.js.map +1 -1
- package/dist/scorm12.js +35 -20
- package/dist/scorm12.js.map +1 -1
- package/dist/scorm12.min.js +1 -1
- package/dist/scorm12.min.js.map +1 -1
- package/dist/scorm2004.js +69 -41
- package/dist/scorm2004.js.map +1 -1
- package/dist/scorm2004.min.js +1 -1
- package/dist/scorm2004.min.js.map +1 -1
- package/dist/types/cmi/scorm2004/adl.d.ts +8 -2
- package/dist/types/cmi/scorm2004/cmi.d.ts +1 -1
- package/package.json +1 -1
- package/src/BaseAPI.ts +56 -33
- package/src/Scorm12API.ts +3 -2
- package/src/Scorm2004API.ts +31 -24
- package/src/cmi/aicc/attempts.ts +3 -3
- package/src/cmi/aicc/core.ts +30 -12
- package/src/cmi/aicc/evaluation.ts +1 -1
- package/src/cmi/aicc/student_data.ts +1 -1
- package/src/cmi/aicc/student_demographics.ts +13 -13
- package/src/cmi/aicc/student_preferences.ts +1 -1
- package/src/cmi/aicc/tries.ts +3 -3
- package/src/cmi/aicc/validation.ts +1 -1
- package/src/cmi/common/array.ts +1 -1
- package/src/cmi/common/score.ts +3 -3
- package/src/cmi/common/validation.ts +2 -2
- package/src/cmi/scorm12/cmi.ts +12 -4
- package/src/cmi/scorm12/interactions.ts +27 -11
- package/src/cmi/scorm12/objectives.ts +4 -4
- package/src/cmi/scorm12/student_data.ts +12 -4
- package/src/cmi/scorm12/student_preference.ts +3 -1
- package/src/cmi/scorm12/validation.ts +5 -3
- package/src/cmi/scorm2004/adl.ts +39 -22
- package/src/cmi/scorm2004/cmi.ts +47 -17
- package/src/cmi/scorm2004/comments.ts +11 -5
- package/src/cmi/scorm2004/interactions.ts +25 -23
- package/src/cmi/scorm2004/learner_preference.ts +3 -1
- package/src/cmi/scorm2004/objectives.ts +5 -5
- package/src/cmi/scorm2004/score.ts +3 -3
- package/src/cmi/scorm2004/validation.ts +2 -2
- package/src/exceptions/aicc_exceptions.ts +4 -4
- package/src/exceptions/scorm12_exceptions.ts +4 -4
- package/src/exceptions/scorm2004_exceptions.ts +4 -4
- package/src/utilities.ts +3 -3
- package/test/BaseAPI.requestHandler.spec.ts +126 -0
- package/test/Scorm12API.spec.ts +45 -0
- package/test/Scorm2004API.spec.ts +43 -0
- package/tsconfig.json +1 -0
package/test/Scorm12API.spec.ts
CHANGED
|
@@ -841,6 +841,51 @@ describe("SCORM 1.2 API Tests", () => {
|
|
|
841
841
|
expect(callback3.calledTwice).toBe(true);
|
|
842
842
|
expect(callback4.calledTwice).toBe(true);
|
|
843
843
|
});
|
|
844
|
+
|
|
845
|
+
it("Should handle multiple events in one listener string", async () => {
|
|
846
|
+
const scorm12API = api({
|
|
847
|
+
...DefaultSettings,
|
|
848
|
+
...{
|
|
849
|
+
lmsCommitUrl: "/scorm12",
|
|
850
|
+
autocommit: true,
|
|
851
|
+
autocommitSeconds: 1,
|
|
852
|
+
},
|
|
853
|
+
});
|
|
854
|
+
scorm12API.lmsInitialize();
|
|
855
|
+
|
|
856
|
+
const callback = sinon.spy();
|
|
857
|
+
scorm12API.on("LMSSetValue.cmi.core.session_time CommitSuccess", callback);
|
|
858
|
+
|
|
859
|
+
scorm12API.lmsSetValue("cmi.core.session_time", "00:01:00");
|
|
860
|
+
clock.tick(2000);
|
|
861
|
+
|
|
862
|
+
await clock.runAllAsync();
|
|
863
|
+
|
|
864
|
+
expect(callback.calledTwice).toBe(true);
|
|
865
|
+
});
|
|
866
|
+
|
|
867
|
+
it("Should detach multiple events using off()", async () => {
|
|
868
|
+
const scorm12API = api({
|
|
869
|
+
...DefaultSettings,
|
|
870
|
+
...{
|
|
871
|
+
lmsCommitUrl: "/scorm12",
|
|
872
|
+
autocommit: true,
|
|
873
|
+
autocommitSeconds: 1,
|
|
874
|
+
},
|
|
875
|
+
});
|
|
876
|
+
scorm12API.lmsInitialize();
|
|
877
|
+
|
|
878
|
+
const callback = sinon.spy();
|
|
879
|
+
scorm12API.on("LMSSetValue.cmi.core.session_time CommitSuccess", callback);
|
|
880
|
+
scorm12API.off("LMSSetValue.cmi.core.session_time CommitSuccess", callback);
|
|
881
|
+
|
|
882
|
+
scorm12API.lmsSetValue("cmi.core.session_time", "00:01:00");
|
|
883
|
+
clock.tick(2000);
|
|
884
|
+
|
|
885
|
+
await clock.runAllAsync();
|
|
886
|
+
|
|
887
|
+
expect(callback.called).toBe(false);
|
|
888
|
+
});
|
|
844
889
|
it("Should handle CommitError event", async () => {
|
|
845
890
|
const scorm12API = api({
|
|
846
891
|
...DefaultSettings,
|
|
@@ -1356,6 +1356,49 @@ describe("SCORM 2004 API Tests", () => {
|
|
|
1356
1356
|
expect(callback3.calledTwice).toBe(true);
|
|
1357
1357
|
expect(callback4.calledTwice).toBe(true);
|
|
1358
1358
|
});
|
|
1359
|
+
|
|
1360
|
+
it("Should handle multiple events in one listener string", async () => {
|
|
1361
|
+
const scorm2004API = api({
|
|
1362
|
+
...DefaultSettings,
|
|
1363
|
+
...{
|
|
1364
|
+
lmsCommitUrl: "/scorm2004",
|
|
1365
|
+
autocommit: true,
|
|
1366
|
+
autocommitSeconds: 1,
|
|
1367
|
+
},
|
|
1368
|
+
});
|
|
1369
|
+
scorm2004API.lmsInitialize();
|
|
1370
|
+
|
|
1371
|
+
const callback = sinon.spy();
|
|
1372
|
+
scorm2004API.on("SetValue.cmi.learner_id CommitSuccess", callback);
|
|
1373
|
+
|
|
1374
|
+
scorm2004API.lmsSetValue("cmi.learner_id", "@jcputney");
|
|
1375
|
+
scorm2004API.lmsCommit();
|
|
1376
|
+
await clock.runAllAsync();
|
|
1377
|
+
|
|
1378
|
+
expect(callback.calledTwice).toBe(true);
|
|
1379
|
+
});
|
|
1380
|
+
|
|
1381
|
+
it("Should detach multiple events using off()", async () => {
|
|
1382
|
+
const scorm2004API = api({
|
|
1383
|
+
...DefaultSettings,
|
|
1384
|
+
...{
|
|
1385
|
+
lmsCommitUrl: "/scorm2004",
|
|
1386
|
+
autocommit: true,
|
|
1387
|
+
autocommitSeconds: 1,
|
|
1388
|
+
},
|
|
1389
|
+
});
|
|
1390
|
+
scorm2004API.lmsInitialize();
|
|
1391
|
+
|
|
1392
|
+
const callback = sinon.spy();
|
|
1393
|
+
scorm2004API.on("SetValue.cmi.learner_id CommitSuccess", callback);
|
|
1394
|
+
scorm2004API.off("SetValue.cmi.learner_id CommitSuccess", callback);
|
|
1395
|
+
|
|
1396
|
+
scorm2004API.lmsSetValue("cmi.learner_id", "@jcputney");
|
|
1397
|
+
scorm2004API.lmsCommit();
|
|
1398
|
+
await clock.runAllAsync();
|
|
1399
|
+
|
|
1400
|
+
expect(callback.called).toBe(false);
|
|
1401
|
+
});
|
|
1359
1402
|
it("Should handle CommitError event", async () => {
|
|
1360
1403
|
const scorm2004API = api({
|
|
1361
1404
|
...DefaultSettings,
|