48 lines
2.1 KiB
JavaScript
48 lines
2.1 KiB
JavaScript
define(['js/models/component_template'],
|
|
function(ComponentTemplate) {
|
|
describe('ComponentTemplates', function() {
|
|
var mockTemplateJSON = {
|
|
templates: [
|
|
{
|
|
category: 'openassessment',
|
|
boilerplate_name: null,
|
|
display_name: 'Peer Assessment'
|
|
}, {
|
|
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',
|
|
support_legend: {show_legend: false}
|
|
};
|
|
|
|
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('openassessment');
|
|
}
|
|
lastTemplate = template;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
});
|