Class: JavascriptTestHook

Inherits:
Mumukit::Templates::FileHook
  • Object
show all
Defined in:
lib/test_hook.rb

Instance Method Summary collapse

Instance Method Details

#command_line(filename) ⇒ Object



26
27
28
# File 'lib/test_hook.rb', line 26

def command_line(filename)
  "mocha #{filename} -R json"
end

#compile_file_content(request) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/test_hook.rb', line 6

def compile_file_content(request)
<<javascript
'use strict';
let assert = require('assert');
#{request.extra}
#{request.content}
describe('', function() {
after(function() {
  console.log("!!!JAVASCRIPT-MUMUKI-OUTPUT!!!");
});
#{request.test}
})

javascript
end

#parse_out(exception) ⇒ Object



46
47
48
# File 'lib/test_hook.rb', line 46

def parse_out(exception)
  exception.present? ? content_type.code(exception['message']) : ''
end

#post_process_unstructured_result(file, result, status) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/test_hook.rb', line 34

def post_process_unstructured_result(file, result, status)
  if status.errored?
    [content_type.code(result.gsub(/(SyntaxError: .*\n)(.|\n)*/) { $1 }), status]
  else
    super
  end
end

#tempfile_extensionObject



22
23
24
# File 'lib/test_hook.rb', line 22

def tempfile_extension
  '.js'
end

#to_structured_result(result) ⇒ Object



30
31
32
# File 'lib/test_hook.rb', line 30

def to_structured_result(result)
  transform(super['tests'])
end

#transform(examples) ⇒ Object



42
43
44
# File 'lib/test_hook.rb', line 42

def transform(examples)
  examples.map { |e| [e['fullTitle'], e['err'].present? ? :failed : :passed, parse_out(e['err'])] }
end