More test cases and breaking out valid/invalid values to be reusable

This commit is contained in:
Jonathan Putney
2019-11-13 13:09:01 -05:00
parent 54b56e905f
commit 755259afdf
13 changed files with 1417 additions and 845 deletions

View File

@@ -12,6 +12,7 @@ import {
CMIObjectivesObject,
} from '../../src/cmi/scorm12_cmi';
import {expect} from 'chai';
import {scorm12_values} from '../../src/constants/field_values';
const invalid_set = scorm12_error_codes.INVALID_SET_VALUE;
const type_mismatch = scorm12_error_codes.TYPE_MISMATCH;
@@ -94,22 +95,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.lesson_status',
validValues: [
'passed',
'completed',
'failed',
'incomplete',
'browsed',
],
invalidValues: [
'Passed',
'P',
'F',
'p',
'true',
'false',
'complete',
],
validValues: scorm12_values.validLessonStatus,
invalidValues: scorm12_values.invalidLessonStatus,
});
h.checkReadAndWrite({
cmi: cmi(),
@@ -132,14 +119,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.exit',
validValues: [
'time-out',
'suspend',
'logout',
], invalidValues: [
'complete',
'exit',
],
validValues: scorm12_values.validExit,
invalidValues: scorm12_values.invalidExit,
});
h.checkWriteOnly({
@@ -151,17 +132,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.session_time',
validValues: [
'10:06:57',
'00:00:01.56',
'23:59:59',
'47:59:59',
],
invalidValues: [
'06:5:13',
'23:59:59.123',
'P1DT23H59M59S',
],
validValues: scorm12_values.validTimestamp,
invalidValues: scorm12_values.invalidTimestamp,
});
/**
@@ -177,47 +149,20 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.score.raw',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.score.min',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.score.max',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
/**
@@ -273,26 +218,10 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.audio',
validValues: [
'1',
validValues: scorm12_values.valid0To100Range.concat([
'-1',
'50',
'100',
],
invalidValues: [
'invalid',
'a100',
],
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.audio',
validValues: [],
invalidValues: [
'101',
'5000000',
'-500',
],
]),
invalidValues: scorm12_values.invalid0To100Range,
});
h.checkFieldConstraintSize({
cmi: cmi(),
@@ -303,48 +232,14 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.speed',
validValues: [
'1',
'-100',
'50',
'100',
],
invalidValues: [
'invalid',
'a100',
],
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.speed',
validValues: [],
invalidValues: [
'101',
'-101',
'5000000',
'-500',
],
validValues: scorm12_values.validSpeedRange,
invalidValues: scorm12_values.invalidSpeedRange,
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.text',
validValues: [
'1',
'-1',
],
invalidValues: [
'invalid',
'a100',
],
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.text',
validValues: [],
invalidValues: [
'2',
'-2',
],
validValues: scorm12_values.validIntegerScaledRange,
invalidValues: scorm12_values.invalidIntegerScaledRange,
});
/**
@@ -443,22 +338,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.lesson_status',
validValues: [
'passed',
'completed',
'failed',
'incomplete',
'browsed',
],
invalidValues: [
'Passed',
'P',
'F',
'p',
'true',
'false',
'complete',
],
validValues: scorm12_values.validLessonStatus,
invalidValues: scorm12_values.invalidLessonStatus,
});
h.checkReadOnly({
cmi: cmi(),
@@ -484,14 +365,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.exit',
validValues: [
'time-out',
'suspend',
'logout',
], invalidValues: [
'complete',
'exit',
],
validValues: scorm12_values.validExit,
invalidValues: scorm12_values.invalidExit,
});
h.checkWriteOnly({
cmi: cmi(),
@@ -502,17 +377,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.session_time',
validValues: [
'10:06:57',
'00:00:01.56',
'23:59:59',
'47:59:59',
],
invalidValues: [
'06:5:13',
'23:59:59.123',
'P1DT23H59M59S',
],
validValues: scorm12_values.validTimestamp,
invalidValues: scorm12_values.invalidTimestamp,
});
/**
@@ -527,47 +393,20 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.score.raw',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.score.min',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.core.score.max',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
/**
@@ -627,26 +466,10 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.audio',
validValues: [
'1',
validValues: scorm12_values.valid0To100Range.concat([
'-1',
'50',
'100',
],
invalidValues: [
'invalid',
'a100',
],
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.audio',
validValues: [],
invalidValues: [
'101',
'5000000',
'-500',
],
]),
invalidValues: scorm12_values.invalid0To100Range,
});
h.checkFieldConstraintSize({
cmi: cmi(),
@@ -657,48 +480,14 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.speed',
validValues: [
'1',
'-100',
'50',
'100',
],
invalidValues: [
'invalid',
'a100',
],
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.speed',
validValues: [],
invalidValues: [
'101',
'-101',
'5000000',
'-500',
],
validValues: scorm12_values.validSpeedRange,
invalidValues: scorm12_values.invalidSpeedRange,
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.text',
validValues: [
'1',
'-1',
],
invalidValues: [
'invalid',
'a100',
],
});
h.checkValidValues({
cmi: cmi(),
fieldName: 'cmi.student_preference.text',
validValues: [],
invalidValues: [
'2',
'-2',
],
validValues: scorm12_values.validIntegerScaledRange,
invalidValues: scorm12_values.invalidIntegerScaledRange,
});
/**
@@ -756,21 +545,10 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: triesObject(),
fieldName: 'cmi.status',
validValues: [
'passed',
'completed',
'failed',
'incomplete',
'browsed',
validValues: scorm12_values.validLessonStatus.concat([
'not attempted',
],
invalidValues: [
'P',
'f',
'complete',
'started',
'in progress',
],
]),
invalidValues: scorm12_values.invalidLessonStatus,
});
h.checkReadAndWrite({
cmi: triesObject(),
@@ -781,16 +559,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: triesObject(),
fieldName: 'cmi.time',
validValues: [
'15:00:30',
'00:50:30',
'23:00:30',
],
invalidValues: [
'-00:00:30',
'0:50:30',
'23:00:30.',
],
validValues: scorm12_values.validTime,
invalidValues: scorm12_values.invalidTime,
});
/**
@@ -805,47 +575,20 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: triesObject(),
fieldName: 'cmi.score.raw',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
h.checkValidValues({
cmi: triesObject(),
fieldName: 'cmi.score.min',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
h.checkValidValues({
cmi: triesObject(),
fieldName: 'cmi.score.max',
validValues: [
'0',
'25.1',
'50.5',
'75',
'100',
],
invalidValues: [
'-1',
'101',
],
validValues: scorm12_values.validScoreRange,
invalidValues: scorm12_values.invalidScoreRange,
});
it('should export JSON', () => {
@@ -888,16 +631,8 @@ describe('AICC CMI Tests', () => {
h.checkValidValues({
cmi: evaluationComment(),
fieldName: 'cmi.time',
validValues: [
'15:00:30',
'00:50:30',
'23:00:30',
],
invalidValues: [
'-00:00:30',
'0:50:30',
'23:00:30.',
],
validValues: scorm12_values.validTime,
invalidValues: scorm12_values.invalidTime,
});
it('should export JSON', () => {