Repository: ambari Updated Branches: refs/heads/trunk 81a0305df -> 8a79d247e
AMBARI-5411. Karma integration. (alexantonenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/8a79d247 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/8a79d247 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/8a79d247 Branch: refs/heads/trunk Commit: 8a79d247efa83df9d0ea90c1a5652b5a9f592d42 Parents: 81a0305 Author: Alex Antonenko <[email protected]> Authored: Wed Apr 9 20:04:22 2014 +0300 Committer: Alex Antonenko <[email protected]> Committed: Wed Apr 9 20:28:15 2014 +0300 ---------------------------------------------------------------------- ambari-web/app/assets/test/karma_setup.js | 25 ++++ ambari-web/karma.conf.js | 158 +++++++++++++++++++++++++ ambari-web/package.json | 16 ++- ambari-web/test/installer/step5_test.js | 2 +- 4 files changed, 196 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/8a79d247/ambari-web/app/assets/test/karma_setup.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/test/karma_setup.js b/ambari-web/app/assets/test/karma_setup.js new file mode 100644 index 0000000..0560f50 --- /dev/null +++ b/ambari-web/app/assets/test/karma_setup.js @@ -0,0 +1,25 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +document.write('<div id="mocha"></div>'); +document.write('<div id="wrapper"></div>'); + +$.mocho = true; +$.hostName = 'localhost:3333'; +mocha.ui('bdd'); +expect = chai.expect; http://git-wip-us.apache.org/repos/asf/ambari/blob/8a79d247/ambari-web/karma.conf.js ---------------------------------------------------------------------- diff --git a/ambari-web/karma.conf.js b/ambari-web/karma.conf.js new file mode 100644 index 0000000..9d841dd --- /dev/null +++ b/ambari-web/karma.conf.js @@ -0,0 +1,158 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +module.exports = function(config) { + config.set({ + + // base path, that will be used to resolve files and exclude + basePath: '', + + plugins: [ + 'karma-mocha', + 'karma-chai', + 'karma-sinon', + 'karma-phantomjs-launcher', + 'karma-coverage', + 'karma-ember-precompiler-brunch', + 'karma-commonjs-require' + ], + + // frameworks to use + frameworks: ['mocha', 'chai', 'sinon'], + + + // list of files / patterns to load in the browser + files: [ + +// 'public/javascripts/vendor.js', +// 'public/javascripts/app.js', +// 'public/test/karma_setup.js', +// 'public/test/javascripts/test.js', +// 'public/test/tests.js' + + 'node_modules/karma-commonjs-require/node_modules/commonjs-require-definition/require.js', + 'vendor/scripts/console-helper.js', + 'vendor/scripts/jquery-1.7.2.min.js', + 'vendor/scripts/handlebars-1.0.0.beta.6.js', + 'vendor/scripts/ember-latest.js', + 'vendor/scripts/ember-data-latest.js', + 'vendor/scripts/ember-i18n-1.4.1.js', + 'vendor/scripts/bootstrap.js', + 'vendor/scripts/bootstrap-combobox.js', + 'vendor/scripts/d3.v2.js', + 'vendor/scripts/cubism.v1.js', + 'vendor/scripts/jquery.ui.core.js', + 'vendor/scripts/jquery.ui.widget.js', + 'vendor/scripts/jquery.ui.mouse.js', + 'vendor/scripts/jquery.ui.datepicker.js', + 'vendor/scripts/jquery-ui-timepicker-addon.js', + 'vendor/scripts/jquery.ui.slider.js', + 'vendor/scripts/jquery.ui.sortable.js', + 'vendor/scripts/jquery.ui.custom-effects.js', + 'vendor/scripts/jquery.timeago.js', + 'vendor/scripts/jquery.ajax-retry.js', + 'vendor/scripts/workflow_visualization.js', + 'vendor/scripts/rickshaw.js', + 'vendor/scripts/spin.js', + 'vendor/scripts/jquery.flexibleArea.js', + 'vendor/scripts/FileSaver.js', + 'vendor/scripts/Blob.js', + 'vendor/**/*.js', + 'app/templates/**/*.hbs', + 'app!(assets)/**/!(karma_setup|tests).js', + 'app/assets/test/karma_setup.js', + { + pattern: 'app/assets/data/**', + served: true, + included: false, + watched: true + }, + 'test/**/*.js', + 'app/assets/test/tests.js' + ], + + emberPrecompilerBrunchPreprocessor: { + jqueryPath: 'vendor/scripts/jquery-1.7.2.min.js', + emberPath: 'vendor/scripts/ember-latest.js', + handlebarsPath: 'vendor/scripts/handlebars-1.0.0.beta.6.js' + }, + + commonRequirePreprocessor: { + appDir: 'app' + }, + + coverageReporter: { + type: 'html', + dir: 'public/coverage/' + }, + + preprocessors: { +// '!(vendor|node_modules|test)/**/!(karma_setup|tests).js': 'coverage', + 'app/templates/**/*.hbs': ['ember-precompiler-brunch', 'common-require'], + 'app!(assets)/**/!(karma_setup|tests).js': ['common-require'], + 'test/**/*.js': ['common-require'] + }, + + // list of files to exclude + exclude: [ + + ], + + + // test results reporter to use + // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage' +// reporters: ['progress', 'coverage'], + reporters: ['progress'], + + + // 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 + }); +}; http://git-wip-us.apache.org/repos/asf/ambari/blob/8a79d247/ambari-web/package.json ---------------------------------------------------------------------- diff --git a/ambari-web/package.json b/ambari-web/package.json index 572e1cb..3d10f7c 100644 --- a/ambari-web/package.json +++ b/ambari-web/package.json @@ -24,9 +24,17 @@ }, "devDependencies":{ "mocha":"1.9.0", - "chai":"*", - "sinon":"*", - "sinon-chai":"*", - "express":"2.5.8" + "chai":"~1.9.0", + "sinon":"=1.7.3", + "sinon-chai":"~2.5.0", + "express":"2.5.8", + "karma": "=0.11.14", + "karma-mocha": "~0.1.1", + "karma-chai": "~0.1.0", + "karma-sinon": "~1.0.2", + "karma-phantomjs-launcher": "~0.1.3", + "karma-coverage": "~0.2.0", + "karma-commonjs-require": "~0.0.1", + "karma-ember-precompiler-brunch": "~0.0.1" } } http://git-wip-us.apache.org/repos/asf/ambari/blob/8a79d247/ambari-web/test/installer/step5_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/installer/step5_test.js b/ambari-web/test/installer/step5_test.js index a672900..c759820 100644 --- a/ambari-web/test/installer/step5_test.js +++ b/ambari-web/test/installer/step5_test.js @@ -148,7 +148,7 @@ describe('App.WizardStep5Controller', function () { it('should be host name different from localhost if hosts number more than one', function() { var hosts = [ - {host_name: ''}, + {host_name: location.hostname}, {host_name: 'host2'} ]; //first host_name is empty string, because of location.hostname = "" in console,
