Initial API tests
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
// @flow
|
// @flow
|
||||||
import {CMIArray} from './cmi/common';
|
import {CMIArray} from './cmi/common';
|
||||||
|
import {ValidationError} from './exceptions';
|
||||||
|
|
||||||
const api_constants = {
|
const api_constants = {
|
||||||
SCORM_TRUE: 'true',
|
SCORM_TRUE: 'true',
|
||||||
@@ -139,15 +140,25 @@ export default class BaseAPI {
|
|||||||
checkTerminated: boolean,
|
checkTerminated: boolean,
|
||||||
CMIElement,
|
CMIElement,
|
||||||
value) {
|
value) {
|
||||||
let returnValue = '';
|
let returnValue = api_constants.SCORM_FALSE;
|
||||||
|
|
||||||
if (this.checkState(checkTerminated, this.#error_codes.STORE_BEFORE_INIT,
|
if (this.checkState(checkTerminated, this.#error_codes.STORE_BEFORE_INIT,
|
||||||
this.#error_codes.STORE_AFTER_TERM)) {
|
this.#error_codes.STORE_AFTER_TERM)) {
|
||||||
if (checkTerminated) this.lastErrorCode = 0;
|
if (checkTerminated) this.lastErrorCode = 0;
|
||||||
returnValue = this.setCMIValue(CMIElement, value);
|
try {
|
||||||
|
returnValue = this.setCMIValue(CMIElement, value);
|
||||||
|
} catch (e) {
|
||||||
|
if (e instanceof ValidationError) {
|
||||||
|
returnValue = api_constants.SCORM_FALSE;
|
||||||
|
} else {
|
||||||
|
this.throwSCORMError(this.#error_codes.GENERAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
this.processListeners(callbackName, CMIElement, value);
|
this.processListeners(callbackName, CMIElement, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (returnValue === undefined) returnValue = api_constants.SCORM_FALSE;
|
||||||
|
|
||||||
this.apiLog(callbackName, CMIElement,
|
this.apiLog(callbackName, CMIElement,
|
||||||
': ' + value + ': result: ' + returnValue,
|
': ' + value + ': result: ' + returnValue,
|
||||||
api_constants.LOG_LEVEL_INFO);
|
api_constants.LOG_LEVEL_INFO);
|
||||||
@@ -373,9 +384,10 @@ export default class BaseAPI {
|
|||||||
*
|
*
|
||||||
* @param {string} _CMIElement
|
* @param {string} _CMIElement
|
||||||
* @param {any} _value
|
* @param {any} _value
|
||||||
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
setCMIValue(_CMIElement, _value) {
|
setCMIValue(_CMIElement, _value) {
|
||||||
// just a stub method
|
return api_constants.SCORM_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -409,7 +421,9 @@ export default class BaseAPI {
|
|||||||
if (scorm2004 && (attribute.substr(0, 8) === '{target=') &&
|
if (scorm2004 && (attribute.substr(0, 8) === '{target=') &&
|
||||||
(typeof refObject._isTargetValid == 'function')) {
|
(typeof refObject._isTargetValid == 'function')) {
|
||||||
this.throwSCORMError(this.#error_codes.READ_ONLY_ELEMENT);
|
this.throwSCORMError(this.#error_codes.READ_ONLY_ELEMENT);
|
||||||
} else if (!{}.hasOwnProperty.call(refObject, attribute)) {
|
} else if (!Object.hasOwnProperty.call(refObject, attribute) &&
|
||||||
|
!Object.getOwnPropertyDescriptor(
|
||||||
|
Object.getPrototypeOf(refObject), attribute)) {
|
||||||
this.throwSCORMError(invalidErrorCode, invalidErrorMessage);
|
this.throwSCORMError(invalidErrorCode, invalidErrorMessage);
|
||||||
} else {
|
} else {
|
||||||
if (this.stringContains(CMIElement, '.correct_responses')) {
|
if (this.stringContains(CMIElement, '.correct_responses')) {
|
||||||
|
|||||||
@@ -119,9 +119,10 @@ export default class Scorm12API extends BaseAPI {
|
|||||||
*
|
*
|
||||||
* @param {string} CMIElement
|
* @param {string} CMIElement
|
||||||
* @param {*} value
|
* @param {*} value
|
||||||
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
setCMIValue(CMIElement, value) {
|
setCMIValue(CMIElement, value) {
|
||||||
this._commonSetCMIValue('LMSSetValue', false, CMIElement, value);
|
return this._commonSetCMIValue('LMSSetValue', false, CMIElement, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
48
test/Scorm12API.spec.js
Normal file
48
test/Scorm12API.spec.js
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
import {expect} from 'chai';
|
||||||
|
import {describe, it} from 'mocha';
|
||||||
|
import Scorm12API from '../src/Scorm12API';
|
||||||
|
import * as h from './api_helpers';
|
||||||
|
import {scorm12_error_codes} from '../src/constants/error_codes';
|
||||||
|
|
||||||
|
describe('SCORM 1.2 API Tests', () => {
|
||||||
|
describe('Pre-Initialization', () => {
|
||||||
|
describe('LMSSetValue', () => {
|
||||||
|
const api = () => {
|
||||||
|
const API = new Scorm12API();
|
||||||
|
API.apiLogLevel = 1;
|
||||||
|
return API;
|
||||||
|
};
|
||||||
|
const apiInitialized = () => {
|
||||||
|
const API = api();
|
||||||
|
API.lmsInitialize();
|
||||||
|
return API;
|
||||||
|
};
|
||||||
|
|
||||||
|
describe('Should throw errors', () => {
|
||||||
|
h.checkWrite({
|
||||||
|
api: api(),
|
||||||
|
fieldName: 'cmi.objectives.0.id',
|
||||||
|
expectedError: scorm12_error_codes.STORE_BEFORE_INIT,
|
||||||
|
});
|
||||||
|
h.checkWrite({
|
||||||
|
api: api(),
|
||||||
|
fieldName: 'cmi.interactions.0.id',
|
||||||
|
expectedError: scorm12_error_codes.STORE_BEFORE_INIT,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Should succeed', () => {
|
||||||
|
h.checkWrite({
|
||||||
|
api: apiInitialized(),
|
||||||
|
fieldName: 'cmi.objectives.0.id',
|
||||||
|
valueToTest: 'AAA',
|
||||||
|
});
|
||||||
|
h.checkWrite({
|
||||||
|
api: apiInitialized(),
|
||||||
|
fieldName: 'cmi.interactions.0.id',
|
||||||
|
valueToTest: 'AAA',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
18
test/api_helpers.js
Normal file
18
test/api_helpers.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import {describe, it} from 'mocha';
|
||||||
|
import {expect} from 'chai';
|
||||||
|
|
||||||
|
export const checkWrite = (
|
||||||
|
{
|
||||||
|
api,
|
||||||
|
fieldName,
|
||||||
|
valueToTest = 'xxx',
|
||||||
|
expectedError = 0,
|
||||||
|
}) => {
|
||||||
|
describe(`Field: ${fieldName}`, () => {
|
||||||
|
const status = expectedError > 0 ? 'fail to' : 'successfully';
|
||||||
|
it(`Should ${status} write to ${fieldName}`, () => {
|
||||||
|
eval(`api.lmsSetValue('${fieldName}', '${valueToTest}')`);
|
||||||
|
expect(String(api.lastErrorCode)).to.equal(String(expectedError));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
CMIEvaluationCommentsObject,
|
CMIEvaluationCommentsObject,
|
||||||
CMITriesObject, NAV,
|
CMITriesObject, NAV,
|
||||||
} from '../../src/cmi/aicc_cmi';
|
} from '../../src/cmi/aicc_cmi';
|
||||||
import * as h from '../helpers';
|
import * as h from '../cmi_helpers';
|
||||||
import {
|
import {
|
||||||
CMIInteractionsObject,
|
CMIInteractionsObject,
|
||||||
CMIObjectivesObject,
|
CMIObjectivesObject,
|
||||||
@@ -29,13 +29,13 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* Base CMI Properties
|
* Base CMI Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._version',
|
fieldName: 'cmi._version',
|
||||||
expectedValue: '3.4',
|
expectedValue: '3.4',
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._children',
|
fieldName: 'cmi._children',
|
||||||
expectedValue: aicc_constants.cmi_children,
|
expectedValue: aicc_constants.cmi_children,
|
||||||
@@ -64,7 +64,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core Properties
|
* cmi.core Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core._children',
|
fieldName: 'cmi.core._children',
|
||||||
expectedValue: aicc_constants.core_children,
|
expectedValue: aicc_constants.core_children,
|
||||||
@@ -139,7 +139,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core.score Properties
|
* cmi.core.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core.score._children',
|
fieldName: 'cmi.core.score._children',
|
||||||
expectedValue: aicc_constants.score_children,
|
expectedValue: aicc_constants.score_children,
|
||||||
@@ -168,13 +168,13 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.objectives Properties
|
* cmi.objectives Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._children',
|
fieldName: 'cmi.objectives._children',
|
||||||
expectedValue: aicc_constants.objectives_children,
|
expectedValue: aicc_constants.objectives_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._count', expectedValue: 0,
|
fieldName: 'cmi.objectives._count', expectedValue: 0,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
@@ -183,7 +183,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_data Properties
|
* cmi.student_data Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_data._children',
|
fieldName: 'cmi.student_data._children',
|
||||||
expectedValue: aicc_constants.student_data_children,
|
expectedValue: aicc_constants.student_data_children,
|
||||||
@@ -209,7 +209,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_preference Properties
|
* cmi.student_preference Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_preference._children',
|
fieldName: 'cmi.student_preference._children',
|
||||||
expectedValue: aicc_constants.student_preference_children,
|
expectedValue: aicc_constants.student_preference_children,
|
||||||
@@ -245,13 +245,13 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.interactions Properties
|
* cmi.interactions Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._children',
|
fieldName: 'cmi.interactions._children',
|
||||||
expectedValue: aicc_constants.interactions_children,
|
expectedValue: aicc_constants.interactions_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._count', expectedValue: 0,
|
fieldName: 'cmi.interactions._count', expectedValue: 0,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
@@ -268,13 +268,13 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* Base CMI Properties
|
* Base CMI Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._version',
|
fieldName: 'cmi._version',
|
||||||
expectedValue: '3.4',
|
expectedValue: '3.4',
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._children',
|
fieldName: 'cmi._children',
|
||||||
expectedValue: aicc_constants.cmi_children,
|
expectedValue: aicc_constants.cmi_children,
|
||||||
@@ -304,7 +304,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core Properties
|
* cmi.core Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core._children',
|
fieldName: 'cmi.core._children',
|
||||||
expectedValue: aicc_constants.core_children,
|
expectedValue: aicc_constants.core_children,
|
||||||
@@ -384,7 +384,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core.score Properties
|
* cmi.core.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core.score._children',
|
fieldName: 'cmi.core.score._children',
|
||||||
expectedValue: aicc_constants.score_children,
|
expectedValue: aicc_constants.score_children,
|
||||||
@@ -412,13 +412,13 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.objectives Properties
|
* cmi.objectives Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._children',
|
fieldName: 'cmi.objectives._children',
|
||||||
expectedValue: aicc_constants.objectives_children,
|
expectedValue: aicc_constants.objectives_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._count', expectedValue: 0,
|
fieldName: 'cmi.objectives._count', expectedValue: 0,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
@@ -427,7 +427,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_data Properties
|
* cmi.student_data Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_data._children',
|
fieldName: 'cmi.student_data._children',
|
||||||
expectedValue: aicc_constants.student_data_children,
|
expectedValue: aicc_constants.student_data_children,
|
||||||
@@ -457,7 +457,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_preference Properties
|
* cmi.student_preference Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_preference._children',
|
fieldName: 'cmi.student_preference._children',
|
||||||
expectedValue: aicc_constants.student_preference_children,
|
expectedValue: aicc_constants.student_preference_children,
|
||||||
@@ -493,13 +493,13 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.interactions Properties
|
* cmi.interactions Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._children',
|
fieldName: 'cmi.interactions._children',
|
||||||
expectedValue: aicc_constants.interactions_children,
|
expectedValue: aicc_constants.interactions_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._count', expectedValue: 0,
|
fieldName: 'cmi.interactions._count', expectedValue: 0,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
@@ -566,7 +566,7 @@ describe('AICC CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_data.tries.n.score Properties
|
* cmi.student_data.tries.n.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: triesObject(),
|
cmi: triesObject(),
|
||||||
fieldName: 'cmi.score._children',
|
fieldName: 'cmi.score._children',
|
||||||
expectedValue: aicc_constants.score_children,
|
expectedValue: aicc_constants.score_children,
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import {
|
|||||||
CMIInteractionsObjectivesObject,
|
CMIInteractionsObjectivesObject,
|
||||||
CMIObjectivesObject,
|
CMIObjectivesObject,
|
||||||
} from '../../src/cmi/scorm12_cmi';
|
} from '../../src/cmi/scorm12_cmi';
|
||||||
import * as h from '../helpers';
|
import * as h from '../cmi_helpers';
|
||||||
import {scorm12_values} from '../../src/constants/field_values';
|
import {scorm12_values} from '../../src/constants/field_values';
|
||||||
|
|
||||||
const invalid_set = scorm12_error_codes.INVALID_SET_VALUE;
|
const invalid_set = scorm12_error_codes.INVALID_SET_VALUE;
|
||||||
@@ -27,13 +27,13 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* Base CMI Properties
|
* Base CMI Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._version',
|
fieldName: 'cmi._version',
|
||||||
expectedValue: '3.4',
|
expectedValue: '3.4',
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._children',
|
fieldName: 'cmi._children',
|
||||||
expectedValue: scorm12_constants.cmi_children,
|
expectedValue: scorm12_constants.cmi_children,
|
||||||
@@ -63,7 +63,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core Properties
|
* cmi.core Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core._children',
|
fieldName: 'cmi.core._children',
|
||||||
expectedValue: scorm12_constants.core_children,
|
expectedValue: scorm12_constants.core_children,
|
||||||
@@ -137,7 +137,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core.score Properties
|
* cmi.core.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core.score._children',
|
fieldName: 'cmi.core.score._children',
|
||||||
expectedValue: scorm12_constants.score_children,
|
expectedValue: scorm12_constants.score_children,
|
||||||
@@ -178,13 +178,13 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.objectives Properties
|
* cmi.objectives Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._children',
|
fieldName: 'cmi.objectives._children',
|
||||||
expectedValue: scorm12_constants.objectives_children,
|
expectedValue: scorm12_constants.objectives_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._count',
|
fieldName: 'cmi.objectives._count',
|
||||||
expectedValue: 0,
|
expectedValue: 0,
|
||||||
@@ -194,7 +194,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_data Properties
|
* cmi.student_data Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_data._children',
|
fieldName: 'cmi.student_data._children',
|
||||||
expectedValue: scorm12_constants.student_data_children,
|
expectedValue: scorm12_constants.student_data_children,
|
||||||
@@ -216,7 +216,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_preference Properties
|
* cmi.student_preference Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_preference._children',
|
fieldName: 'cmi.student_preference._children',
|
||||||
expectedValue: scorm12_constants.student_preference_children,
|
expectedValue: scorm12_constants.student_preference_children,
|
||||||
@@ -264,13 +264,13 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.interactions Properties
|
* cmi.interactions Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._children',
|
fieldName: 'cmi.interactions._children',
|
||||||
expectedValue: scorm12_constants.interactions_children,
|
expectedValue: scorm12_constants.interactions_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._count',
|
fieldName: 'cmi.interactions._count',
|
||||||
expectedValue: 0,
|
expectedValue: 0,
|
||||||
@@ -288,13 +288,13 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* Base CMI Properties
|
* Base CMI Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._version',
|
fieldName: 'cmi._version',
|
||||||
expectedValue: '3.4',
|
expectedValue: '3.4',
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi._children',
|
fieldName: 'cmi._children',
|
||||||
expectedValue: scorm12_constants.cmi_children,
|
expectedValue: scorm12_constants.cmi_children,
|
||||||
@@ -326,7 +326,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core Properties
|
* cmi.core Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core._children',
|
fieldName: 'cmi.core._children',
|
||||||
expectedValue: scorm12_constants.core_children,
|
expectedValue: scorm12_constants.core_children,
|
||||||
@@ -406,7 +406,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.core.score Properties
|
* cmi.core.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.core.score._children',
|
fieldName: 'cmi.core.score._children',
|
||||||
expectedValue: scorm12_constants.score_children,
|
expectedValue: scorm12_constants.score_children,
|
||||||
@@ -434,13 +434,13 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.objectives Properties
|
* cmi.objectives Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._children',
|
fieldName: 'cmi.objectives._children',
|
||||||
expectedValue: scorm12_constants.objectives_children,
|
expectedValue: scorm12_constants.objectives_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.objectives._count',
|
fieldName: 'cmi.objectives._count',
|
||||||
expectedValue: 0,
|
expectedValue: 0,
|
||||||
@@ -450,7 +450,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_data Properties
|
* cmi.student_data Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_data._children',
|
fieldName: 'cmi.student_data._children',
|
||||||
expectedValue: scorm12_constants.student_data_children,
|
expectedValue: scorm12_constants.student_data_children,
|
||||||
@@ -475,7 +475,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.student_preference Properties
|
* cmi.student_preference Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.student_preference._children',
|
fieldName: 'cmi.student_preference._children',
|
||||||
expectedValue: scorm12_constants.student_preference_children,
|
expectedValue: scorm12_constants.student_preference_children,
|
||||||
@@ -509,13 +509,13 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.interactions Properties
|
* cmi.interactions Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._children',
|
fieldName: 'cmi.interactions._children',
|
||||||
expectedValue: scorm12_constants.interactions_children,
|
expectedValue: scorm12_constants.interactions_children,
|
||||||
expectedError: invalid_set,
|
expectedError: invalid_set,
|
||||||
});
|
});
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.interactions._count',
|
fieldName: 'cmi.interactions._count',
|
||||||
expectedValue: 0,
|
expectedValue: 0,
|
||||||
@@ -725,7 +725,7 @@ describe('SCORM 1.2 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.objectives.n.score Properties
|
* cmi.objectives.n.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: objective(),
|
cmi: objective(),
|
||||||
fieldName: 'cmi.score._children',
|
fieldName: 'cmi.score._children',
|
||||||
expectedValue: scorm12_constants.score_children,
|
expectedValue: scorm12_constants.score_children,
|
||||||
|
|||||||
@@ -10,10 +10,9 @@ import {
|
|||||||
CMIInteractionsObjectivesObject,
|
CMIInteractionsObjectivesObject,
|
||||||
CMIObjectivesObject,
|
CMIObjectivesObject,
|
||||||
} from '../../src/cmi/scorm2004_cmi';
|
} from '../../src/cmi/scorm2004_cmi';
|
||||||
import * as h from '../helpers';
|
import * as h from '../cmi_helpers';
|
||||||
import {expect} from 'chai';
|
import {expect} from 'chai';
|
||||||
import {scorm2004_values} from '../../src/constants/field_values';
|
import {scorm2004_values} from '../../src/constants/field_values';
|
||||||
import {valid_languages} from '../../src/constants/language_constants';
|
|
||||||
|
|
||||||
const read_only = scorm2004_error_codes.READ_ONLY_ELEMENT;
|
const read_only = scorm2004_error_codes.READ_ONLY_ELEMENT;
|
||||||
const write_only = scorm2004_error_codes.WRITE_ONLY_ELEMENT;
|
const write_only = scorm2004_error_codes.WRITE_ONLY_ELEMENT;
|
||||||
@@ -158,7 +157,7 @@ describe('SCORM 2004 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.learner_preference Properties
|
* cmi.learner_preference Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.learner_preference._children',
|
fieldName: 'cmi.learner_preference._children',
|
||||||
expectedValue: scorm2004_constants.student_preference_children,
|
expectedValue: scorm2004_constants.student_preference_children,
|
||||||
@@ -216,7 +215,7 @@ describe('SCORM 2004 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.score Properties
|
* cmi.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.score._children',
|
fieldName: 'cmi.score._children',
|
||||||
expectedValue: scorm2004_constants.score_children,
|
expectedValue: scorm2004_constants.score_children,
|
||||||
@@ -474,7 +473,7 @@ describe('SCORM 2004 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.learner_preference Properties
|
* cmi.learner_preference Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.learner_preference._children',
|
fieldName: 'cmi.learner_preference._children',
|
||||||
expectedValue: scorm2004_constants.student_preference_children,
|
expectedValue: scorm2004_constants.student_preference_children,
|
||||||
@@ -532,7 +531,7 @@ describe('SCORM 2004 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.score Properties
|
* cmi.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: cmi(),
|
cmi: cmi(),
|
||||||
fieldName: 'cmi.score._children',
|
fieldName: 'cmi.score._children',
|
||||||
expectedValue: scorm2004_constants.score_children,
|
expectedValue: scorm2004_constants.score_children,
|
||||||
@@ -912,7 +911,7 @@ describe('SCORM 2004 CMI Tests', () => {
|
|||||||
/**
|
/**
|
||||||
* cmi.objectives.n.score Properties
|
* cmi.objectives.n.score Properties
|
||||||
*/
|
*/
|
||||||
h.checkInvalidSet({
|
h.checkReadOnly({
|
||||||
cmi: objective(),
|
cmi: objective(),
|
||||||
fieldName: 'cmi.score._children',
|
fieldName: 'cmi.score._children',
|
||||||
expectedValue: scorm2004_constants.score_children,
|
expectedValue: scorm2004_constants.score_children,
|
||||||
|
|||||||
@@ -28,25 +28,6 @@ export const checkFieldConstraintSize = (
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const checkInvalidSet = (
|
|
||||||
{
|
|
||||||
cmi,
|
|
||||||
fieldName,
|
|
||||||
expectedValue = '',
|
|
||||||
expectedError,
|
|
||||||
}) => {
|
|
||||||
describe(`Field: ${fieldName}`, () => {
|
|
||||||
it(`Should be able to read from ${fieldName}`, () => {
|
|
||||||
expect(eval(`${fieldName}`)).to.equal(expectedValue);
|
|
||||||
});
|
|
||||||
|
|
||||||
it(`Should fail to write to ${fieldName}`, () => {
|
|
||||||
expect(() => eval(`${fieldName} = 'xxx'`)).
|
|
||||||
to.throw(expectedError + '');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
export const checkReadOnly = (
|
export const checkReadOnly = (
|
||||||
{
|
{
|
||||||
cmi,
|
cmi,
|
||||||
Reference in New Issue
Block a user