test: fix related test cases
This commit is contained in:
@@ -16,7 +16,7 @@ export const parseScoringSettings = (metadata, defaultSettings) => {
|
||||
|
||||
let attempts = popuplateItem({}, 'max_attempts', 'number', metadata);
|
||||
// TODO: impove below condition handling
|
||||
if ((_.isEmpty(attempts) || _.isNaN(attempts.number)) && _.isNaN(defaultSettings.max_attempts)) {
|
||||
if ((_.isEmpty(attempts) || _.isNaN(attempts.number)) && (_.isEmpty(defaultSettings) || _.isNaN(defaultSettings.max_attempts))) {
|
||||
attempts = { unlimited: true, number: '' };
|
||||
} else if (!_.isEmpty(attempts) && !_.isNaN(attempts.number)) {
|
||||
attempts.unlimited = false;
|
||||
|
||||
@@ -8,39 +8,40 @@ import {
|
||||
} from './mockData/problemTestData';
|
||||
|
||||
describe('Test Settings to State Parser', () => {
|
||||
const defaultSettings = { max_attempts: 1 };
|
||||
test('Test all fields populated', () => {
|
||||
const settings = parseSettings(checklistWithFeebackHints.metadata);
|
||||
const settings = parseSettings(checklistWithFeebackHints.metadata, defaultSettings);
|
||||
const { hints, ...settingsPayload } = checklistWithFeebackHints.state.settings;
|
||||
expect(settings).toStrictEqual(settingsPayload);
|
||||
});
|
||||
|
||||
test('Test score settings', () => {
|
||||
const scoreSettings = parseScoringSettings(checklistWithFeebackHints.metadata);
|
||||
const scoreSettings = parseScoringSettings(checklistWithFeebackHints.metadata, defaultSettings);
|
||||
expect(scoreSettings).toStrictEqual(checklistWithFeebackHints.state.settings.scoring);
|
||||
});
|
||||
|
||||
test('Test score settings zero attempts', () => {
|
||||
const scoreSettings = parseScoringSettings(numericWithHints.metadata);
|
||||
const scoreSettings = parseScoringSettings(numericWithHints.metadata, defaultSettings);
|
||||
expect(scoreSettings).toStrictEqual(numericWithHints.state.settings.scoring);
|
||||
});
|
||||
|
||||
test('Test score settings attempts missing', () => {
|
||||
const scoreSettings = parseScoringSettings(singleSelectWithHints.metadata);
|
||||
test('Test score settings attempts missing with no default max_attempts', () => {
|
||||
const scoreSettings = parseScoringSettings(singleSelectWithHints.metadata, {});
|
||||
expect(scoreSettings.attempts).toStrictEqual(singleSelectWithHints.state.settings.scoring.attempts);
|
||||
});
|
||||
|
||||
test('Test negative attempts in score', () => {
|
||||
const scoreSettings = parseScoringSettings(negativeAttempts.metadata);
|
||||
const scoreSettings = parseScoringSettings(negativeAttempts.metadata, defaultSettings);
|
||||
expect(scoreSettings.attempts).toStrictEqual(negativeAttempts.state.settings.scoring.attempts);
|
||||
});
|
||||
|
||||
test('Test score settings missing', () => {
|
||||
const settings = parseSettings(singleSelectWithHints.metadata);
|
||||
test('Test score settings missing with no default', () => {
|
||||
const settings = parseSettings(singleSelectWithHints.metadata, {});
|
||||
expect(settings.scoring).toStrictEqual(singleSelectWithHints.state.settings.scoring);
|
||||
});
|
||||
|
||||
test('Test invalid randomization', () => {
|
||||
const settings = parseSettings(numericWithHints.metadata);
|
||||
const settings = parseSettings(numericWithHints.metadata, defaultSettings);
|
||||
expect(settings.randomization).toBeUndefined();
|
||||
});
|
||||
|
||||
@@ -55,12 +56,12 @@ describe('Test Settings to State Parser', () => {
|
||||
});
|
||||
|
||||
test('Test empty metadata', () => {
|
||||
const scoreSettings = parseSettings({});
|
||||
const scoreSettings = parseSettings({}, defaultSettings);
|
||||
expect(scoreSettings).toStrictEqual({});
|
||||
});
|
||||
|
||||
test('Test null metadata', () => {
|
||||
const scoreSettings = parseSettings(null);
|
||||
const scoreSettings = parseSettings(null, defaultSettings);
|
||||
expect(scoreSettings).toStrictEqual({});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user