Setting up a Rake task for Jasmine/Karma

This commit is contained in:
Will Marshall
2014-04-08 13:25:35 +10:00
parent f6c173d0de
commit fca9ba284e
4 changed files with 39 additions and 4 deletions

View File

@@ -5,11 +5,11 @@ module.exports = function(config) {
frameworks: ['jasmine'],
files: [
APPLICATION_SPEC,
'app/assets/javascripts/shared/jquery-1.8.0.js', // TODO: Can we link to Rails' jquery?
'app/assets/javascripts/shared/angular.js',
'app/assets/javascripts/shared/angular-*.js',
'app/assets/javascripts/shared/jquery.timeago.js',
'app/assets/javascripts/shared/mm-foundation-tpls-0.2.0-SNAPSHOT.js',
'app/assets/javascripts/shared/angular-local-storage.js',
'app/assets/javascripts/admin/shared_directives.js.coffee',
'app/assets/javascripts/admin/shared_services.js.coffee',
@@ -18,7 +18,6 @@ module.exports = function(config) {
'app/assets/javascripts/admin/bulk_product_update.js.coffee',
'app/assets/javascripts/darkswarm/*.js*',
'app/assets/javascripts/darkswarm/**/*.js*',
'spec/javascripts/unit/**/*.js*'
],

31
lib/tasks/karma.rake Normal file
View File

@@ -0,0 +1,31 @@
namespace :karma do
task :start => :environment do
with_tmp_config :start
end
task :run => :environment do
with_tmp_config :start, "--single-run"
end
private
def with_tmp_config(command, args = nil)
Tempfile.open('karma_unit.js', Rails.root.join('tmp') ) do |f|
f.write unit_js(application_spec_files)
f.flush
system "karma #{command} #{f.path} #{args}"
end
end
def application_spec_files
sprockets = Rails.application.assets
sprockets.append_path Rails.root.join("spec/javascripts")
files = Rails.application.assets.find_asset("application_spec.js").to_a.map {|e| e.pathname.to_s }
end
def unit_js(files)
puts files
unit_js = File.open('config/ng-test.conf.js', 'r').read
unit_js.gsub "APPLICATION_SPEC", "\"#{files.join("\",\n\"")}\""
end
end

View File

@@ -0,0 +1,5 @@
//= require angular
//= require angular-resource
//= require angular-animate
//= require angular-mocks
//= require angular-cookies

View File

@@ -828,4 +828,4 @@ describe 'OrderCycle services', ->
expect(order_cycle.outgoing_exchanges[0].enterprise_fees).toEqual [{id: 3}, {id: 4}]
expect(order_cycle.incoming_exchanges[0].enterprise_fee_ids).toBeUndefined()
expect(order_cycle.outgoing_exchanges[0].enterprise_fee_ids).toBeUndefined()