Jasmine tests, fix some review issues
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
<section class="combinedopenended-editor editor">
|
||||
<div class="row">
|
||||
<textarea class="markdown-box">markdown</textarea>
|
||||
<textarea class="xml-box" rows="8" cols="40">xml</textarea>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,5 @@
|
||||
<section class="combinedopenended-editor editor">
|
||||
<div class="row">
|
||||
<textarea class="xml-box" rows="8" cols="40">xml only</textarea>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,6 +1,6 @@
|
||||
<section class="problem-editor editor">
|
||||
<div class="row">
|
||||
<textarea class="markdown-box">markdown</textarea>
|
||||
<textarea class="markdown-box">[prompt]prompt[prompt]</textarea>
|
||||
<textarea class="xml-box" rows="8" cols="40">xml</textarea>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,145 @@
|
||||
describe 'OpenEndedMarkdownEditingDescriptor', ->
|
||||
describe 'save stores the correct data', ->
|
||||
it 'saves markdown from markdown editor', ->
|
||||
loadFixtures 'combinedopenended-with-markdown.html'
|
||||
@descriptor = new OpenEndedMarkdownEditingDescriptor($('.combinedopenended-editor'))
|
||||
saveResult = @descriptor.save()
|
||||
expect(saveResult.metadata.markdown).toEqual('markdown')
|
||||
expect(saveResult.data).toEqual('<combinedopenended>\nmarkdown\n</combinedopenended>')
|
||||
it 'clears markdown when xml editor is selected', ->
|
||||
loadFixtures 'combinedopenended-with-markdown.html'
|
||||
@descriptor = new OpenEndedMarkdownEditingDescriptor($('.combinedopenended-editor'))
|
||||
@descriptor.createXMLEditor('replace with markdown')
|
||||
saveResult = @descriptor.save()
|
||||
expect(saveResult.metadata.markdown).toEqual(null)
|
||||
expect(saveResult.data).toEqual('replace with markdown')
|
||||
it 'saves xml from the xml editor', ->
|
||||
loadFixtures 'combinedopenended-without-markdown.html'
|
||||
@descriptor = new OpenEndedMarkdownEditingDescriptor($('.combinedopenended-editor'))
|
||||
saveResult = @descriptor.save()
|
||||
expect(saveResult.metadata.markdown).toEqual(null)
|
||||
expect(saveResult.data).toEqual('xml only')
|
||||
|
||||
describe 'insertPrompt', ->
|
||||
it 'inserts the template if selection is empty', ->
|
||||
revisedSelection = OpenEndedMarkdownEditingDescriptor.insertPrompt('')
|
||||
expect(revisedSelection).toEqual(OpenEndedMarkdownEditingDescriptor.promptTemplate)
|
||||
it 'recognizes html in the prompt', ->
|
||||
revisedSelection = OpenEndedMarkdownEditingDescriptor.insertPrompt('[prompt]<h1>Hello</h1>[prompt]')
|
||||
expect(revisedSelection).toEqual('[prompt]<h1>Hello</h1>[prompt]')
|
||||
|
||||
describe 'insertRubric', ->
|
||||
it 'inserts the template if selection is empty', ->
|
||||
revisedSelection = OpenEndedMarkdownEditingDescriptor.insertRubric('')
|
||||
expect(revisedSelection).toEqual(OpenEndedMarkdownEditingDescriptor.rubricTemplate)
|
||||
it 'recognizes a proper rubric', ->
|
||||
revisedSelection = OpenEndedMarkdownEditingDescriptor.insertRubric('[rubric]\n+1\n-1\n-2\n[rubric]')
|
||||
expect(revisedSelection).toEqual('[rubric]\n+1\n-1\n-2\n[rubric]')
|
||||
|
||||
describe 'insertTasks', ->
|
||||
it 'inserts the template if selection is empty', ->
|
||||
revisedSelection = OpenEndedMarkdownEditingDescriptor.insertTasks('')
|
||||
expect(revisedSelection).toEqual(OpenEndedMarkdownEditingDescriptor.tasksTemplate)
|
||||
it 'recognizes a proper task string', ->
|
||||
revisedSelection = OpenEndedMarkdownEditingDescriptor.insertTasks('[tasks](Self)[tasks]')
|
||||
expect(revisedSelection).toEqual('[tasks](Self)[tasks]')
|
||||
|
||||
describe 'markdownToXml', ->
|
||||
# test default templates
|
||||
it 'converts prompt to xml', ->
|
||||
data = OpenEndedMarkdownEditingDescriptor.markdownToXml("""[prompt]
|
||||
<h1>Prompt!</h1>
|
||||
This is my super awesome prompt.
|
||||
[prompt]
|
||||
""")
|
||||
data = data.replace(/[\t\n\s]/gmi,'')
|
||||
expect(data).toEqual("""
|
||||
<combinedopenended>
|
||||
<prompt>
|
||||
<h1>Prompt!</h1>
|
||||
This is my super awesome prompt.
|
||||
</prompt>
|
||||
</combinedopenended>
|
||||
""".replace(/[\t\n\s]/gmi,''))
|
||||
|
||||
it 'converts rubric to xml', ->
|
||||
data = OpenEndedMarkdownEditingDescriptor.markdownToXml("""[rubric]
|
||||
+ 1
|
||||
-1
|
||||
-2
|
||||
+ 2
|
||||
-1
|
||||
-2
|
||||
+3
|
||||
-1
|
||||
-2
|
||||
-3
|
||||
[rubric]
|
||||
""")
|
||||
data = data.replace(/[\t\n\s]/gmi,'')
|
||||
expect(data).toEqual("""
|
||||
<combinedopenended>
|
||||
<rubric>
|
||||
<rubric>
|
||||
<category>
|
||||
<description>1</description>
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
</category>
|
||||
<category>
|
||||
<description>2</description>
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
</category>
|
||||
<category>
|
||||
<description>3</description>
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
<option>3</option>
|
||||
</category>
|
||||
</rubric>
|
||||
</rubric>
|
||||
</combinedopenended>
|
||||
""".replace(/[\t\n\s]/gmi,''))
|
||||
|
||||
it 'converts tasks to xml', ->
|
||||
data = OpenEndedMarkdownEditingDescriptor.markdownToXml("""[tasks]
|
||||
(Self), ({1-2}AI), ({1-4}AI), ({1-2}Peer
|
||||
[tasks]
|
||||
""")
|
||||
data = data.replace(/[\t\n\s]/gmi,'')
|
||||
equality_list = """
|
||||
<combinedopenended>
|
||||
<task>
|
||||
<selfassessment/>
|
||||
</task>
|
||||
<task>
|
||||
<openended min_score_to_attempt="1" max_score_to_attempt="2">
|
||||
<openendedparam>
|
||||
<initial_display>Enter essay here.</initial_display>
|
||||
<answer_display>This is the answer.</answer_display>
|
||||
<grader_payload>{"grader_settings" : "ml_grading.conf", "problem_id" : "6.002x/Welcome/OETest"}</grader_payload>
|
||||
</openendedparam>
|
||||
</openended>
|
||||
</task>
|
||||
<task>
|
||||
<openended min_score_to_attempt="1" max_score_to_attempt="4">
|
||||
<openendedparam>
|
||||
<initial_display>Enter essay here.</initial_display>
|
||||
<answer_display>This is the answer.</answer_display>
|
||||
<grader_payload>{"grader_settings" : "ml_grading.conf", "problem_id" : "6.002x/Welcome/OETest"}</grader_payload>
|
||||
</openendedparam>
|
||||
</openended>
|
||||
</task>
|
||||
<task>
|
||||
<openended min_score_to_attempt="1" max_score_to_attempt="2">
|
||||
<openendedparam>
|
||||
<initial_display>Enter essay here.</initial_display>
|
||||
<answer_display>This is the answer.</answer_display>
|
||||
<grader_payload>{"grader_settings" : "peer_grading.conf", "problem_id" : "6.002x/Welcome/OETest"}</grader_payload>
|
||||
</openendedparam>
|
||||
</openended>
|
||||
</task>
|
||||
</combinedopenended>
|
||||
"""
|
||||
expect(data).toEqual(equality_list.replace(/[\t\n\s]/gmi,''))
|
||||
@@ -131,8 +131,12 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor
|
||||
|
||||
@insertGenericInput: (selectedText, lineStart, lineEnd, template) ->
|
||||
if selectedText.length > 0
|
||||
# TODO: should this insert a newline afterwards?
|
||||
return lineStart + selectedText + lineEnd
|
||||
new_string = selectedText.replace(/^\s+|\s+$/g,'')
|
||||
if new_string.substring(0,lineStart.length) != lineStart
|
||||
new_string = lineStart + new_string
|
||||
if new_string.substring((new_string.length)-lineEnd.length,new_string.length) != lineEnd
|
||||
new_string = new_string + lineEnd
|
||||
return new_string
|
||||
else
|
||||
return template
|
||||
|
||||
|
||||
@@ -217,8 +217,8 @@ def get_module_for_descriptor(user, request, descriptor, model_data_cache, cours
|
||||
#this first checks to see if the descriptor is the correct one, and only sends settings if it is
|
||||
|
||||
#Get descriptor metadata fields indicating needs for various settings
|
||||
needs_open_ended_interface = hasattr(descriptor, "needs_open_ended_interface") and descriptor.needs_open_ended_interface
|
||||
needs_s3_interface = hasattr(descriptor, "needs_s3_interface") and descriptor.needs_s3_interface
|
||||
needs_open_ended_interface = hasattr(descriptor, "needs_open_ended_interface", False)
|
||||
needs_s3_interface = hasattr(descriptor, "needs_s3_interface", False)
|
||||
|
||||
#Initialize interfaces to None
|
||||
open_ended_grading_interface = None
|
||||
|
||||
Reference in New Issue
Block a user