80 lines
3.6 KiB
JavaScript
80 lines
3.6 KiB
JavaScript
define(["js/models/component_template"],
|
|
function (ComponentTemplate) {
|
|
|
|
describe("ComponentTemplates", function() {
|
|
var mockTemplateJSON = {
|
|
"templates": [
|
|
{
|
|
"category": "problem",
|
|
"boilerplate_name": "formularesponse.yaml",
|
|
"display_name": "Math Expression Input"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": null,
|
|
"display_name": "Blank Advanced Problem"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": "checkboxes.yaml",
|
|
"display_name": "Checkboxes"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": "multiple_choice.yaml",
|
|
"display_name": "Multiple Choice"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": "drag_and_drop.yaml",
|
|
"display_name": "Drag and Drop"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": "problem_with_hint.yaml",
|
|
"display_name": "Problem with Adaptive Hint"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": "imageresponse.yaml",
|
|
"display_name": "Image Mapped Input"
|
|
}, {
|
|
"category": "openassessment",
|
|
"boilerplate_name": null,
|
|
"display_name": "Peer Assessment"
|
|
}, {
|
|
"category": "problem",
|
|
"boilerplate_name": "an_easy_problem.yaml",
|
|
"display_name": "An Easy Problem"
|
|
}, {
|
|
"category": "word_cloud",
|
|
"boilerplate_name": null,
|
|
"display_name": "Word Cloud"
|
|
}, { // duplicate display name to verify sort behavior
|
|
"category": "word_cloud",
|
|
"boilerplate_name": "alternate_word_cloud.yaml",
|
|
"display_name": "Word Cloud"
|
|
}],
|
|
"type": "problem"
|
|
};
|
|
|
|
it('orders templates correctly', function () {
|
|
var lastTemplate = null,
|
|
firstComparison = true,
|
|
componentTemplate = new ComponentTemplate(),
|
|
template, templateName, i;
|
|
componentTemplate.parse(mockTemplateJSON);
|
|
for (i=0; i < componentTemplate.templates.length; i++) {
|
|
template = componentTemplate.templates[i];
|
|
templateName = template['display_name'];
|
|
if (lastTemplate) {
|
|
if (!firstComparison || lastTemplate['boilerplate_name']) {
|
|
expect(lastTemplate['display_name'] < templateName).toBeTruthy();
|
|
}
|
|
firstComparison = false;
|
|
} else {
|
|
// If the first template is blank, make sure that it has the correct category
|
|
if (!template['boilerplate_name']) {
|
|
expect(template['category']).toBe('problem');
|
|
}
|
|
lastTemplate = template;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|