Skip to content

Instantly share code, notes, and snippets.

@daino3
Created August 24, 2016 16:57
Show Gist options
  • Save daino3/792c565357e0fca24913c92e45130d4c to your computer and use it in GitHub Desktop.
Save daino3/792c565357e0fca24913c92e45130d4c to your computer and use it in GitHub Desktop.
module.exports = function(config) {
config.set({
// base path
basePath: './',
// frameworks to use
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/jquery-rails-4.0.4/vendor/assets/javascripts/jquery.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/jquery-rails-4.0.4/vendor/assets/javascripts/jquery_ujs.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/d3-rails-3.5.6/app/assets/javascripts/d3.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.abide.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.accordion.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.alert.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.clearing.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.dropdown.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.equalizer.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.interchange.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.joyride.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.magellan.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.offcanvas.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.orbit.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.reveal.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.slider.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.tab.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.tooltip.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation/foundation.topbar.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/foundation-rails-5.5.2.1/vendor/assets/javascripts/foundation.js",
"/vagrant/vendor/assets/javascripts/foundation-datepicker.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/lodash-rails-3.10.1/vendor/assets/javascripts/lodash.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/momentjs-rails-2.10.3/vendor/assets/javascripts/moment.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/bundler/gems/actioncable-6be2604aa719/lib/assets/javascripts/cable.coffee.erb",
"/home/vagrant/.rvm/gems/ruby-2.2.2/bundler/gems/actioncable-6be2604aa719/lib/assets/javascripts/cable/connection.coffee",
"/home/vagrant/.rvm/gems/ruby-2.2.2/bundler/gems/actioncable-6be2604aa719/lib/assets/javascripts/cable/connection_monitor.coffee",
"/home/vagrant/.rvm/gems/ruby-2.2.2/bundler/gems/actioncable-6be2604aa719/lib/assets/javascripts/cable/subscriptions.coffee",
"/home/vagrant/.rvm/gems/ruby-2.2.2/bundler/gems/actioncable-6be2604aa719/lib/assets/javascripts/cable/subscription.coffee",
"/home/vagrant/.rvm/gems/ruby-2.2.2/bundler/gems/actioncable-6be2604aa719/lib/assets/javascripts/cable/consumer.coffee",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/jquery-datatables-rails-3.3.0/app/assets/javascripts/dataTables/jquery.dataTables.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/angularjs-rails-1.4.4/vendor/assets/javascripts/angular.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/angularjs-rails-1.4.4/vendor/assets/javascripts/angular-resource.js",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/angularjs-rails-1.4.4/vendor/assets/javascripts/angular-animate.js",
"/vagrant/vendor/assets/javascripts/angular-foundation.min.js",
"/vagrant/app/assets/javascripts/app/longford_admin.js.coffee",
"/vagrant/app/assets/javascripts/accounts.coffee",
"/vagrant/app/assets/javascripts/app/controllers/audits_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/controllers/book_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/controllers/confirm_order_controller.coffee",
"/vagrant/app/assets/javascripts/app/controllers/confirm_settlement_controller.coffee",
"/vagrant/app/assets/javascripts/app/controllers/executions_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/controllers/firm_contact_controller.js.coffee",
"/vagrant/app/assets/javascripts/app/controllers/firm_controller.js.coffee",
"/vagrant/app/assets/javascripts/app/controllers/firm_org_chart_controller.coffee",
"/vagrant/app/assets/javascripts/app/controllers/instrument_form_controller.coffee",
"/vagrant/app/assets/javascripts/app/controllers/instruments_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/controllers/message_board_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/controllers/new_order_controller.js.coffee",
"/vagrant/app/assets/javascripts/app/controllers/order_history_controller.js.coffee",
"/vagrant/app/assets/javascripts/app/controllers/trader_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/controllers/trader_orders_controller.coffee.erb",
"/vagrant/app/assets/javascripts/app/directives/ng_confirm_click.js.coffee",
"/vagrant/app/assets/javascripts/app/directives/ng_enter.js.coffee",
"/vagrant/app/assets/javascripts/app/filters/filterStateOptions.js.coffee",
"/vagrant/app/assets/javascripts/app/filters/formatLongfordId.js.coffee",
"/vagrant/app/assets/javascripts/app/filters/formatTimestamp.js.coffee",
"/vagrant/app/assets/javascripts/app/services/account.coffee",
"/vagrant/app/assets/javascripts/app/services/bbo_ticker.coffee",
"/vagrant/app/assets/javascripts/app/services/executing_firm.coffee",
"/vagrant/app/assets/javascripts/app/services/execution.coffee",
"/vagrant/app/assets/javascripts/app/services/instrument.coffee",
"/vagrant/app/assets/javascripts/app/services/order.js.coffee",
"/vagrant/app/assets/javascripts/app/services/trader.js.coffee",
"/vagrant/app/assets/javascripts/app/services/user.js.coffee",
"/vagrant/app/assets/javascripts/app/templates/response.jst",
"/vagrant/app/assets/javascripts/contacts.coffee",
"/vagrant/app/assets/javascripts/executions.coffee",
"/vagrant/app/assets/javascripts/fills.coffee",
"/vagrant/app/assets/javascripts/firms.coffee",
"/vagrant/app/assets/javascripts/instrument_root.coffee",
"/vagrant/app/assets/javascripts/instruments.coffee",
"/vagrant/app/assets/javascripts/orders.coffee",
"/vagrant/app/assets/javascripts/traders.coffee",
"/vagrant/app/assets/javascripts/user.coffee",
"/vagrant/app/assets/javascripts/application.coffee",
"/home/vagrant/.rvm/gems/ruby-2.2.2/gems/angularjs-rails-1.4.4/vendor/assets/javascripts/angular-mocks.js",
"/vagrant/vendor/test/assets/javascripts/jasmine-jquery.js",
"/vagrant/spec/javascripts/app/controllers/trader_orders_controller_spec.coffee",
"/vagrant/spec/javascripts/spec_helper.coffee",
{pattern: 'spec/javascripts/fixtures/*.json', watched: true, served: true, included: false}
],
// list of files to exclude
exclude: [],
// test results reporter to use
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
reporters: ['progress', 'junit'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera (has to be installed with `npm install karma-opera-launcher`)
// - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
// - PhantomJS
// - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
browsers: ['PhantomJS'],
// If browser does not capture in given timeout [ms], kill it
captureTimeout: 60000,
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,
// Preprocessors
preprocessors: {
'/home/vagrant/.rvm/gems/**/*.coffee.erb': ['coffee'],
'/home/vagrant/.rvm/gems/**/*.coffee': ['coffee'],
'/home/jenkins/.rvm/gems/**/*.coffee.erb': ['coffee'],
'/home/jenkins/.rvm/gems/**/*.coffee': ['coffee'],
'**/*.coffee.erb': ['coffee'],
'**/*.coffee': ['coffee'],
'/**/*.slim': ['slim', 'ng-html2js']
},
ngHtml2JsPreprocessor: {
stripPrefix: 'app/assets/templates/',
stripSufix: '.slim'
},
junitReporter: {
outputDir: '../tmp/', // results will be saved as $outputDir/$browserName.xml
outputFile: undefined, // if included, results will be saved as $outputDir/$browserName/$outputFile
suite: '', // suite will become the package name attribute in xml testsuite element
useBrowserName: true // add browser name to report and classes names
}
});
};
namespace :karma do
task start: :environment do
with_tmp_config :start
end
task run: :environment do
exit with_tmp_config :start, "--single-run"
end
private
def with_tmp_config(command, args = nil)
File.open(Rails.root.join('karma.conf.js'), 'w') do |f|
f.write unit_js(application_files)
f.flush
system "./node_modules/karma/bin/karma #{command} #{args}"
end
end
def application_files
app_files = Rails.application.assets.find_asset("application.coffee").to_a.map {|e| e.pathname.to_s }
spec_files = Rails.application.assets.find_asset("spec_helper.coffee").to_a.map {|e| e.pathname.to_s }
app_files + spec_files
end
def unit_js(files)
contents = nil
File.open('spec/javascripts/karma/config/unit.js', 'r') do |file|
contents = file.read
contents.gsub!("APPLICATION_SPEC", "\"#{files.join("\",\n\"")}\"")
end
contents
end
end
{
"name": "my-project",
"private": true,
"dependencies": {
"karma": ">= 0.12.16",
"karma-jasmine": ">= 0.2.2",
"karma-coffee-preprocessor": ">= 0.3.0",
"karma-slim-preprocessor": ">= 0.0.1",
"karma-phantomjs-launcher": ">= 0.1.4",
"karma-ng-html2js-preprocessor": "git://github.com/monterail/karma-ng-html2js-preprocessor#feature/strip-sufix",
"karma-junit-reporter": "*"
},
"devDependencies": {
"karma-jasmine": "^0.3.6",
"karma-phantomjs-launcher": "^0.2.1",
"phantomjs": "^1.9.18"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment