-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathRakefile
79 lines (67 loc) · 2.57 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
root=File.dirname __FILE__
task :default => [:build]
desc 'Create js files from coffee sources'
task :build do
`node_modules/.bin/coffee --compile --output . src/isolate.coffee`
`node_modules/.bin/coffee --compile spec`
end
test_namespace = namespace :test do
desc "Verify Isolate usage under node's version of require"
task :commonjs => :build do
debug = isDebug?() ? ' debug' : ''
Dir.chdir root do
system "NODE_PATH=.:./spec:./spec/modules_for_testing/commonjs:$NODE_PATH ./node_modules/.bin/mocha --reporter spec #{debug} ./spec/commonjs.spec.js"
end
end
desc "Verify Isolate usage under requirejs's version of require"
task :requirejs => :build do
versions = ENV['versions'] || ENV['version'] || 'latest'
debug = isDebug?() ? ' debug' : ''
supportedVersionsRegex = Regexp.new("^2\.[0-9]\.[0-9]$")
all_versions = `npm view requirejs versions | grep -oE [0-9.]+`.split
case versions
when 'all'
versions_to_test_against = all_versions
when 'supported'
versions_to_test_against = all_versions.keep_if { |v| supportedVersionsRegex.match(v) }
when 'latest'
versions_to_test_against = [ all_versions.last ]
else
raise('versions argument not understood. Must be one of "all", "supported", "latest", or glob: "2.x.x", "2.1.x", or "2.1.1"') unless /^([0-9]+|x)\.([0-9]+|x)\.([0-9]+|x)$/.match versions
regex = Regexp.new("^#{versions.gsub('.', '\\.').gsub('x','[0-9]')}$")
versions_to_test_against = all_versions.keep_if { |v| regex.match(v) }
end
puts "testing against versions: [#{versions_to_test_against}]"
versions_to_test_against.each do |version|
Dir.chdir root do
puts "Running tests against requirejs version: [#{version}]"
system "npm install requirejs@#{version}"
cmd = "NODE_PATH=.:./spec:$NODE_PATH ./node_modules/.bin/mocha --globals 'define,requirejsVars' --reporter spec #{debug} ./spec/requirejs.spec.js"
if isDebug?()
system cmd
else
puts tests_output = `#{cmd}`
raise('Failed to load Tests') if tests_output.include? '0 tests complete'
tests_passed = $?.success?
raise('Tests Failed') unless tests_passed
end
end
end
end
end
desc 'Verify Isolate usage'
task :test do
test_namespace.tasks.each {|test_task| test_task.invoke}
end
desc 'Remove built js files'
task :clean do
Dir.chdir root do
FileUtils.rm(FileList['*.js'])
FileUtils.rm(FileList['spec/**/*.js'])
end
end
# noop for syntactic sugar
task :debug
def isDebug?
ARGV[1..-1].include?('debug')
end