diff --git a/.bowerrc b/.bowerrc index f594df7..ba0accc 100644 --- a/.bowerrc +++ b/.bowerrc @@ -1,3 +1,3 @@ { - "directory": "app/components" + "directory": "app/bower_components" } diff --git a/.gitignore b/.gitignore index 90d7bbc..69d4bfe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ node_modules -.idea -*.iml - -#build +dist .tmp .sass-cache -app/components +app/bower_components +/.project +/.settings diff --git a/.jshintrc b/.jshintrc index 64b7ce8..40377ba 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,7 +1,6 @@ { "node": true, "browser": true, - "es5": true, "esnext": true, "bitwise": true, "camelcase": true, diff --git a/.travis.yml b/.travis.yml index 3fd065b..f2fb457 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,8 @@ language: node_js node_js: - - 0.8 - + - '0.10' before_script: - - npm install -g grunt-cli - -script: - - grunt test \ No newline at end of file + - 'export DISPLAY=:99.0' + - 'sh -e /etc/init.d/xvfb start' + - 'npm install -g bower grunt-cli' + - 'bower install' diff --git a/Gruntfile.js b/Gruntfile.js index e18dc25..95ffc8c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,163 +1,394 @@ +// Generated on 2014-05-13 using generator-angular 0.8.0 'use strict'; -var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet; -var mountFolder = function (connect, dir) { - return connect.static(require('path').resolve(dir)); -}; +// # Globbing +// for performance reasons we're only matching one level down: +// 'test/spec/{,*/}*.js' +// use this if you want to recursively match all subfolders: +// 'test/spec/**/*.js' module.exports = function (grunt) { - // load all grunt tasks - require('matchdep').filterDev('grunt-*').concat(['gruntacular']).forEach(grunt.loadNpmTasks); - - // configurable paths - var yeomanConfig = { - app: 'app', - dist: 'build', - name: "angular-d3" - }; - - try { - yeomanConfig.app = require('./component.json').appPath || yeomanConfig.app; - } catch (e) { - } - grunt.initConfig({ - yeoman: yeomanConfig, - clean: { - dist: ['.tmp', '<%= yeoman.dist %>/*'], - server: '.tmp' - }, - jshint: { - options: { - jshintrc: '.jshintrc' - }, - all: [ - 'Gruntfile.js', - '<%= yeoman.app %>/scripts/{,*/}*.js' - ] - }, - connect: { - livereload: { - options: { - port: 9000, - // Change this to '0.0.0.0' to access the server from outside. - hostname: 'localhost', - middleware: function (connect) { - return [ - lrSnippet, - mountFolder(connect, '.tmp'), - mountFolder(connect, yeomanConfig.app) - ]; - } - } - }, - test: { - options: { - port: 9000, - middleware: function (connect) { - return [ - mountFolder(connect, '.tmp'), - mountFolder(connect, 'test') - ]; - } - } - } - }, - testacular: { - unit: { - configFile: 'testacular.conf.js', - singleRun: true - } - }, - concat: { - // Done via index.html for correct order - }, - useminPrepare: { - html: '<%= yeoman.app %>/index.html', - options: { - dest: '<%= yeoman.dist %>' - } - }, - usemin: { - js: ['<%= yeoman.dist %>/{,*/}*.js'], - css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], - options: { - dirs: ['<%= yeoman.dist %>'] - } - }, - cdnify: { - dist: { - html: ['<%= yeoman.dist %>/*.html'] - } - }, - ngmin: { - dist: { - files: [ - { - expand: true, - cwd: '<%= yeoman.dist %>', - src: '*.js', - dest: '<%= yeoman.dist %>' - } - ] - } + // Load grunt tasks automatically + require('load-grunt-tasks')(grunt); + + // Time how long tasks take. Can help when optimizing build times + require('time-grunt')(grunt); + + // Define the configuration for all the tasks + grunt.initConfig({ + + // Project settings + yeoman: { + // configurable paths + app: require('./bower.json').appPath || 'app', + dist: 'dist' + }, + + // Watches files for changes and runs tasks based on the changed files + watch: { + bower: { + files: ['bower.json'], + tasks: ['bowerInstall'] + }, + js: { + files: ['<%= yeoman.app %>/scripts/{,*/}*.js'], + tasks: ['newer:jshint:all'], + options: { + livereload: true + } + }, + jsTest: { + files: ['test/spec/{,*/}*.js'], + tasks: ['newer:jshint:test', 'karma'] + }, + styles: { + files: ['<%= yeoman.app %>/styles/{,*/}*.css'], + tasks: ['newer:copy:styles', 'autoprefixer'] + }, + gruntfile: { + files: ['Gruntfile.js'] + }, + livereload: { + options: { + livereload: '<%= connect.options.livereload %>' }, - uglify: { - dist: { - files: { - '<%= yeoman.dist %>/<%= yeoman.name %>.min.js': [ - '<%= yeoman.dist %>/<%= yeoman.name %>.js' - ] - } - } + files: [ + '<%= yeoman.app %>/{,*/}*.html', + '.tmp/styles/{,*/}*.css', + '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' + ] + } + }, + + // The actual grunt server settings + connect: { + options: { + port: 9000, + // Change this to '0.0.0.0' to access the server from outside. + hostname: 'localhost', + livereload: 35729 + }, + livereload: { + options: { + open: true, + base: [ + '.tmp', + '<%= yeoman.app %>' + ] + } + }, + test: { + options: { + port: 9001, + base: [ + '.tmp', + 'test', + '<%= yeoman.app %>' + ] + } + }, + dist: { + options: { + base: '<%= yeoman.dist %>' + } + } + }, + + // Make sure code styles are up to par and there are no obvious mistakes + jshint: { + options: { + jshintrc: '.jshintrc', + reporter: require('jshint-stylish') + }, + all: [ + 'Gruntfile.js', + '<%= yeoman.app %>/scripts/{,*/}*.js' + ], + test: { + options: { + jshintrc: 'test/.jshintrc' }, - copy: { - dist: { - files: [ - { - expand: true, - dot: true, - cwd: '<%= yeoman.app %>', - dest: '<%= yeoman.dist %>', - src: [ - '*.{txt}' - ] - } - ] + src: ['test/spec/{,*/}*.js'] + } + }, + + // Empties folders to start fresh + clean: { + dist: { + files: [{ + dot: true, + src: [ + '.tmp', + '<%= yeoman.dist %>/*', + '!<%= yeoman.dist %>/.git*' + ] + }] + }, + server: '.tmp' + }, + + // Add vendor prefixed styles + autoprefixer: { + options: { + browsers: ['last 1 version'] + }, + dist: { + files: [{ + expand: true, + cwd: '.tmp/styles/', + src: '{,*/}*.css', + dest: '.tmp/styles/' + }] + } + }, + + // Automatically inject Bower components into the app + bowerInstall: { + app: { + src: ['<%= yeoman.app %>/index.html'], + ignorePath: '<%= yeoman.app %>/' + } + }, + + // Renames files for browser caching purposes + rev: { + dist: { + files: { + src: [ + '<%= yeoman.dist %>/scripts/{,*/}*.js', + '<%= yeoman.dist %>/styles/{,*/}*.css', + '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', + '<%= yeoman.dist %>/styles/fonts/*' + ] + } + } + }, + + // Reads HTML for usemin blocks to enable smart builds that automatically + // concat, minify and revision files. Creates configurations in memory so + // additional tasks can operate on them + useminPrepare: { + html: '<%= yeoman.app %>/index.html', + options: { + dest: '<%= yeoman.dist %>', + flow: { + html: { + steps: { + js: ['concat', 'uglifyjs'], + css: ['cssmin'] } + } } - }); - - grunt.renameTask('regarde', 'watch'); - // remove when mincss task is renamed - grunt.renameTask('mincss', 'cssmin'); - - grunt.registerTask('server', [ - 'clean:server', - 'coffee:dist', - 'compass:server', - 'livereload-start', - 'connect:livereload', - 'open', - 'watch' - ]); + } + }, - grunt.registerTask('test', [ - 'clean:server', - 'connect:test', - 'testacular' - ]); + // Performs rewrites based on rev and the useminPrepare configuration + usemin: { + html: ['<%= yeoman.dist %>/{,*/}*.html'], + css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], + options: { + assetsDirs: ['<%= yeoman.dist %>'] + } + }, + + // The following *-min tasks produce minified files in the dist folder + cssmin: { + options: { + root: '<%= yeoman.app %>' + } + }, + + imagemin: { + dist: { + files: [{ + expand: true, + cwd: '<%= yeoman.app %>/images', + src: '{,*/}*.{png,jpg,jpeg,gif}', + dest: '<%= yeoman.dist %>/images' + }] + } + }, + + svgmin: { + dist: { + files: [{ + expand: true, + cwd: '<%= yeoman.app %>/images', + src: '{,*/}*.svg', + dest: '<%= yeoman.dist %>/images' + }] + } + }, + + htmlmin: { + dist: { + options: { + collapseWhitespace: true, + collapseBooleanAttributes: true, + removeCommentsFromCDATA: true, + removeOptionalTags: true + }, + files: [{ + expand: true, + cwd: '<%= yeoman.dist %>', + src: ['*.html', 'views/{,*/}*.html'], + dest: '<%= yeoman.dist %>' + }] + } + }, - grunt.registerTask('build', [ - 'clean:dist', - 'useminPrepare', - 'concat', - 'copy', - 'cdnify', - 'usemin', - 'ngmin' - //'uglify' + // ngmin tries to make the code safe for minification automatically by + // using the Angular long form for dependency injection. It doesn't work on + // things like resolve or inject so those have to be done manually. + ngmin: { + dist: { + files: [{ + expand: true, + cwd: '.tmp/concat/scripts', + src: '*.js', + dest: '.tmp/concat/scripts' + }] + } + }, + + // Replace Google CDN references + cdnify: { + dist: { + html: ['<%= yeoman.dist %>/*.html'] + } + }, + + // Copies remaining files to places other tasks can use + copy: { + dist: { + files: [{ + expand: true, + dot: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist %>', + src: [ + '*.{ico,png,txt}', + '.htaccess', + '*.html', + 'views/{,*/}*.html', + 'images/{,*/}*.{webp}', + 'fonts/*' + ] + }, { + expand: true, + cwd: '.tmp/images', + dest: '<%= yeoman.dist %>/images', + src: ['generated/*'] + }] + }, + styles: { + expand: true, + cwd: '<%= yeoman.app %>/styles', + dest: '.tmp/styles/', + src: '{,*/}*.css' + } + }, + + // Run some tasks in parallel to speed up the build process + concurrent: { + server: [ + 'copy:styles' + ], + test: [ + 'copy:styles' + ], + dist: [ + 'copy:styles', + 'imagemin', + 'svgmin' + ] + }, + + // By default, your `index.html`'s will take care of + // minification. These next options are pre-configured if you do not wish + // to use the Usemin blocks. + // cssmin: { + // dist: { + // files: { + // '<%= yeoman.dist %>/styles/main.css': [ + // '.tmp/styles/{,*/}*.css', + // '<%= yeoman.app %>/styles/{,*/}*.css' + // ] + // } + // } + // }, + // uglify: { + // dist: { + // files: { + // '<%= yeoman.dist %>/scripts/scripts.js': [ + // '<%= yeoman.dist %>/scripts/scripts.js' + // ] + // } + // } + // }, + // concat: { + // dist: {} + // }, + + // Test settings + karma: { + unit: { + configFile: 'karma.conf.js', + singleRun: true + } + } + }); + + + grunt.registerTask('serve', function (target) { + if (target === 'dist') { + return grunt.task.run(['build', 'connect:dist:keepalive']); + } + + grunt.task.run([ + 'clean:server', + 'bowerInstall', + 'concurrent:server', + 'autoprefixer', + 'connect:livereload', + 'watch' ]); + }); + + grunt.registerTask('server', function (target) { + grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); + grunt.task.run(['serve:' + target]); + }); + + grunt.registerTask('test', [ + 'clean:server', + 'concurrent:test', + 'autoprefixer', + 'connect:test', + 'karma' + ]); + + grunt.registerTask('build', [ + 'clean:dist', + 'bowerInstall', + 'useminPrepare', + 'concurrent:dist', + 'autoprefixer', + 'concat', + 'ngmin', + 'copy:dist', + 'cdnify', + 'cssmin', + 'uglify', + 'rev', + 'usemin', + 'htmlmin' + ]); - grunt.registerTask('default', ['build']); + grunt.registerTask('default', [ + 'newer:jshint', + 'test', + 'build' + ]); }; diff --git a/README.md b/README.md index 8d08b89..e204496 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ angular-d3 ================== +[![Build Status](https://travis-ci.org/robinboehm/angular-d3-directives.svg?branch=master)](https://travis-ci.org/robinboehm/angular-d3-directives) + Blogpost about this project: http://spiiice.net/using-angularjs-and-d3-to-create-a-wordcloud-directive Create [directives](http://docs.angularjs.org/guide/directive) to enable even more easy usage of [d3](http://d3js.org/) by [Mike Bostock](https://github.com/mbostock/d3)! diff --git a/app/index.html b/app/index.html index 8af702d..d955e13 100644 --- a/app/index.html +++ b/app/index.html @@ -1,10 +1,65 @@ - - - + + + + + + + + + + + + + + + + + + + + + - - + +
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..a27124c --- /dev/null +++ b/bower.json @@ -0,0 +1,17 @@ +{ + "name": "angular-d3", + "version": "0.0.0", + "dependencies": { + "angular": "1.2.15", + "json3": "~3.2.6", + "es5-shim": "~2.1.0", + "angular-resource": "1.2.15", + "angular-cookies": "1.2.15", + "angular-sanitize": "1.2.15", + "angular-route": "1.2.15" + }, + "devDependencies": { + "angular-mocks": "1.2.15", + "angular-scenario": "1.2.15" + } +} diff --git a/build/angular-d3.js b/build/angular-d3.js index 1b2852a..15efac1 100644 --- a/build/angular-d3.js +++ b/build/angular-d3.js @@ -1,6 +1,6 @@ 'use strict'; angular.module('d3', []); -'use strict'; + angular.module('d3').factory('d3', [function () { var d3; var π = Math.PI, ε = 0.000001, d3 = { version: '3.0.8' }, d3_radians = π / 180, d3_degrees = 180 / π, d3_document = document, d3_window = window; @@ -9127,7 +9127,7 @@ angular.module('d3').factory('d3', [function () { }; return d3; }]); -'use strict'; +; angular.module('d3').config([ '$provide', function ($provide) { @@ -9493,7 +9493,7 @@ angular.module('d3').config([ $provide.decorator('d3', d3WorldCloudDecorator); } ]); -'use strict'; +; angular.module('d3').directive('wordcloud', [ 'd3', function (d3) { @@ -9586,7 +9586,7 @@ angular.module('d3').directive('wordcloud', [ }; } ]); -'use strict'; +; angular.module('d3').config([ '$provide', function ($provide) { @@ -9754,7 +9754,7 @@ angular.module('d3').config([ $provide.decorator('d3', d3HorizonChartDecorator); } ]); -'use strict'; +; angular.module('d3').directive('horizonChart', [ 'd3', function (d3) { diff --git a/component.json b/component.json deleted file mode 100644 index 8ff8610..0000000 --- a/component.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "angular-d3", - "version": "0.0.1", - "dependencies": { - "angular": "~1.0.5" - }, - "devDependencies": { - } -} diff --git a/examples/wordcloud/index.html b/examples/wordcloud/index.html index acb5229..6303176 100644 --- a/examples/wordcloud/index.html +++ b/examples/wordcloud/index.html @@ -29,11 +29,12 @@

Simple Words Subelements

- + + - - + + diff --git a/examples/wordcloud/scripts/controllers/main.js b/examples/wordcloud/scripts/controllers/main.js index b80c5be..badfcda 100644 --- a/examples/wordcloud/scripts/controllers/main.js +++ b/examples/wordcloud/scripts/controllers/main.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('examplesApp') +angular.module('examplesApp',['d3']) .controller('MainCtrl', ['$scope',function ($scope) { $scope.words = ["Hallo","Test","Lorem","Ipsum","Lorem","ipsum","dolor","sit","amet,","consetetur","sadipscing","elitr,","sed","diam","nonumy","eirmod","tempor","invidunt","ut","labore","et","dolore","magna","aliquyam","erat,","sed","diam"]; diff --git a/karma-e2e.conf.js b/karma-e2e.conf.js new file mode 100644 index 0000000..f838127 --- /dev/null +++ b/karma-e2e.conf.js @@ -0,0 +1,55 @@ +// Karma configuration +// http://karma-runner.github.io/0.10/config/configuration-file.html + +module.exports = function(config) { + config.set({ + // base path, that will be used to resolve files and exclude + basePath: '', + + // testing framework to use (jasmine/mocha/qunit/...) + frameworks: ['ng-scenario'], + + // list of files / patterns to load in the browser + files: [ + 'test/e2e/**/*.js' + ], + + // list of files / patterns to exclude + exclude: [], + + // web server port + port: 8080, + + // level of logging + // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG + logLevel: config.LOG_INFO, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: false, + + + // Start these browsers, currently available: + // - Chrome + // - ChromeCanary + // - Firefox + // - Opera + // - Safari (only Mac) + // - PhantomJS + // - IE (only Windows) + browsers: ['Firefox'], + + plugins: ['karma-jasmine', 'karma-firefox-launcher'], + + // Continuous Integration mode + // if true, it capture browsers, run tests and exit + singleRun: false + + // Uncomment the following lines if you are using grunt's server to run the tests + // proxies: { + // '/': 'http://localhost:9000/' + // }, + // URL root prevent conflicts with the site root + // urlRoot: '_karma_' + }); +}; diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..862b710 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,57 @@ +// Karma configuration +// http://karma-runner.github.io/0.10/config/configuration-file.html + +module.exports = function(config) { + config.set({ + // base path, that will be used to resolve files and exclude + basePath: '', + + // testing framework to use (jasmine/mocha/qunit/...) + frameworks: ['jasmine'], + + // list of files / patterns to load in the browser + files: [ + 'app/bower_components/angular/angular.js', + 'app/bower_components/angular-mocks/angular-mocks.js', + 'app/bower_components/angular-resource/angular-resource.js', + 'app/bower_components/angular-cookies/angular-cookies.js', + 'app/bower_components/angular-sanitize/angular-sanitize.js', + 'app/bower_components/angular-route/angular-route.js', + 'app/scripts/*.js', + 'app/scripts/**/*.js', + 'test/mock/**/*.js', + 'test/spec/**/*.js' + ], + + // list of files / patterns to exclude + exclude: [], + + // web server port + port: 8080, + + // level of logging + // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG + logLevel: config.LOG_INFO, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: false, + + + // Start these browsers, currently available: + // - Chrome + // - ChromeCanary + // - Firefox + // - Opera + // - Safari (only Mac) + // - PhantomJS + // - IE (only Windows) + browsers: ['Firefox'], + + plugins: ['karma-jasmine', 'karma-firefox-launcher'], + + // Continuous Integration mode + // if true, it capture browsers, run tests and exit + singleRun: true + }); +}; diff --git a/package.json b/package.json index 4c06cfd..761740b 100644 --- a/package.json +++ b/package.json @@ -3,29 +3,41 @@ "version": "0.0.1", "dependencies": {}, "devDependencies": { - "grunt": "0.4.0rc7", - "grunt-contrib-copy": "0.4.0rc7", - "grunt-contrib-concat": "0.1.2rc6", - "grunt-contrib-coffee": "0.4.0rc7", - "grunt-contrib-uglify": "0.1.1rc6", - "grunt-contrib-compass": "0.1.1rc8", - "grunt-contrib-jshint": "0.1.1rc6", - "grunt-contrib-mincss": "0.4.0rc7", - "grunt-contrib-connect": "0.1.1rc6", - "grunt-contrib-clean": "0.4.0rc6", - "grunt-contrib-htmlmin": "0.1.1rc7", - "grunt-contrib-imagemin": "0.1.1rc8", - "grunt-contrib-livereload": "0.1.0rc8", - "grunt-bower-hooks": "~0.2.0", - "grunt-usemin": "~0.1.7", - "grunt-regarde": "~0.1.1", - "gruntacular": "~0.1.1", - "grunt-open": "~0.1.0", - "matchdep": "~0.1.1", - "grunt-google-cdn": "~0.1.0", - "grunt-ngmin": "~0.0.1" + "grunt": "~0.4.1", + "grunt-autoprefixer": "~0.4.0", + "grunt-bower-install": "~1.0.0", + "grunt-concurrent": "~0.5.0", + "grunt-contrib-clean": "~0.5.0", + "grunt-contrib-concat": "~0.3.0", + "grunt-contrib-connect": "~0.5.0", + "grunt-contrib-copy": "~0.4.1", + "grunt-contrib-cssmin": "~0.7.0", + "grunt-contrib-htmlmin": "~0.1.3", + "grunt-contrib-imagemin": "0.7.0", + "grunt-contrib-jshint": "~0.7.1", + "grunt-contrib-uglify": "~0.2.0", + "grunt-contrib-watch": "~0.5.2", + "grunt-google-cdn": "~0.2.0", + "grunt-karma": "^0.8.3", + "grunt-newer": "~0.6.1", + "grunt-ngmin": "~0.0.2", + "grunt-rev": "~0.1.0", + "grunt-svgmin": "~0.2.0", + "grunt-usemin": "~2.0.0", + "jshint-stylish": "~0.1.3", + "karma": "^0.12.16", + "karma-chrome-launcher": "^0.1.4", + "karma-firefox-launcher": "^0.1.3", + "karma-jasmine": "^0.1.5", + "karma-ng-html2js-preprocessor": "^0.1.0", + "karma-ng-scenario": "^0.1.0", + "load-grunt-tasks": "~0.4.0", + "time-grunt": "~0.2.1" }, "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" + }, + "scripts": { + "test": "grunt test" } } diff --git a/test/.jshintrc b/test/.jshintrc new file mode 100644 index 0000000..b1be025 --- /dev/null +++ b/test/.jshintrc @@ -0,0 +1,36 @@ +{ + "node": true, + "browser": true, + "esnext": true, + "bitwise": true, + "camelcase": true, + "curly": true, + "eqeqeq": true, + "immed": true, + "indent": 2, + "latedef": true, + "newcap": true, + "noarg": true, + "quotmark": "single", + "regexp": true, + "undef": true, + "unused": true, + "strict": true, + "trailing": true, + "smarttabs": true, + "globals": { + "after": false, + "afterEach": false, + "angular": false, + "before": false, + "beforeEach": false, + "browser": false, + "describe": false, + "expect": false, + "inject": false, + "it": false, + "jasmine": false, + "spyOn": false + } +} + diff --git a/test/runner.html_old b/test/runner.html_old new file mode 100644 index 0000000..f4a00a1 --- /dev/null +++ b/test/runner.html_old @@ -0,0 +1,10 @@ + + + + End2end Test Runner + + + + + + \ No newline at end of file diff --git a/testacular.conf.js b/testacular.conf.js deleted file mode 100644 index 4a0fff8..0000000 --- a/testacular.conf.js +++ /dev/null @@ -1,52 +0,0 @@ -// Testacular configuration - -// base path, that will be used to resolve files and exclude -basePath = ''; - -// list of files / patterns to load in the browser -files = [ - JASMINE, - JASMINE_ADAPTER, - 'app/components/angular/angular.js', - 'app/components/angular-mocks/angular-mocks.js', - 'app/scripts/*.js', - 'app/scripts/**/*.js', - 'test/mock/**/*.js', - 'test/spec/**/*.js' -]; - -// list of files to exclude -exclude = []; - -// test results reporter to use -// possible values: dots || progress -reporter = 'progress'; - -// web server port -port = 8080; - -// cli runner port -runnerPort = 9100; - -// enable / disable colors in the output (reporters and logs) -colors = true; - -// level of logging -// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG -logLevel = LOG_INFO; - -// enable / disable watching file and executing tests whenever any file changes -autoWatch = false; - -// Start these browsers, currently available: -// - Chrome -// - ChromeCanary -// - Firefox -// - Opera -// - Safari -// - PhantomJS -browsers = ['Chrome',"Safari"]; - -// Continuous Integration mode -// if true, it capture browsers, run tests and exit -singleRun = false;