test: fix related test cases

This commit is contained in:
Navin Karkera
2023-10-09 20:34:05 +05:30
parent c70679da54
commit 5df26bf83b
5 changed files with 26 additions and 23 deletions

View File

@@ -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;

View File

@@ -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({});
});
});