karma-ox-ui
Advanced tools
Comparing version 0.0.1 to 0.0.2
@@ -7,3 +7,4 @@ var createPattern = function(path) { | ||
if (!coreDir) { | ||
console.warn('No coreDir provided. This will lead to problems when testing modules dependent on a core UI installation.'); | ||
//fall back to build/ directory if nothing is set | ||
coreDir = 'build/'; | ||
} | ||
@@ -10,0 +11,0 @@ var path = require('path'), |
{ | ||
"name": "karma-ox-ui", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "Karma adapter for Open-Xchange App Suite UI module testing", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
141
README.md
@@ -1,1 +0,140 @@ | ||
# karma-ox-ui - Karma Adaptor for OX App Suite UI plugin tests | ||
# karma-ox-ui | ||
Karma adaptor for OX App Suite UI plugin tests. | ||
## Setup | ||
Make sure, karma executable is installed: | ||
``` | ||
npm install -g karma-cli | ||
``` | ||
Install a few more testing libraries locally: | ||
``` | ||
npm install --save-dev karma-mocha karma-chai karma-sinon karma-ox-ui karma-phantomjs-launcher | ||
``` | ||
After that, in your plugin directory generate a new karma.conf.js: | ||
``` | ||
jb@wiggum ~/code/appsuite/ox_pgp_mail (git)-[karma] % karma init | ||
Which testing framework do you want to use ? | ||
Press tab to list possible options. Enter to move to the next question. | ||
> mocha | ||
Do you want to use Require.js ? | ||
This will add Require.js plugin. | ||
Press tab to list possible options. Enter to move to the next question. | ||
> no | ||
Do you want to capture any browsers automatically ? | ||
Press tab to list possible options. Enter empty string to move to the next question. | ||
> | ||
What is the location of your source and test files ? | ||
You can use glob patterns, eg. "js/*.js" or "test/**/*Spec.js". | ||
Enter empty string to move to the next question. | ||
> | ||
jb@wiggum ~/code/appsuite/ox_pgp_mail (git)-[ding] % karma init | ||
Which testing framework do you want to use ? | ||
Press tab to list possible options. Enter to move to the next question. | ||
> mocha | ||
Do you want to use Require.js ? | ||
This will add Require.js plugin. | ||
Press tab to list possible options. Enter to move to the next question. | ||
> no | ||
Do you want to capture any browsers automatically ? | ||
Press tab to list possible options. Enter empty string to move to the next question. | ||
> PhantomJS | ||
> | ||
What is the location of your source and test files ? | ||
You can use glob patterns, eg. "js/*.js" or "test/**/*Spec.js". | ||
Enter empty string to move to the next question. | ||
> | ||
Should any of the files included by the previous patterns be excluded ? | ||
You can use glob patterns, eg. "**/*.swp". | ||
Enter empty string to move to the next question. | ||
> | ||
Do you want Karma to watch all the files and run the tests on change ? | ||
Press tab to list possible options. | ||
> no | ||
Config file generated at "/home/jb/code/appsuite/ox_pgp_mail/karma.conf.js". | ||
``` | ||
Edit the generated file and adjust the following configuration variables: | ||
``` | ||
basePath: 'build/', | ||
frameworks: ['ox-ui', 'sinon', 'mocha', 'chai'], | ||
files: [ | ||
'spec/test-main.js', | ||
{pattern: 'apps/**/*.js', included: false}, | ||
{pattern: 'spec/**/*_spec.js', included: false} | ||
] | ||
``` | ||
Generate a main loader script to start the test after App Suite Core UI | ||
has been booted. The file should be put in `spec/test-main.js`: | ||
``` | ||
var allTestFiles = []; | ||
var TEST_REGEXP = /_spec\.js$/i; | ||
var pathToModule = function(path) { | ||
return path; | ||
// return path.replace(/^\/base\//, '').replace(/\.js$/, ''); | ||
}; | ||
Object.keys(window.__karma__.files).forEach(function(file) { | ||
if (TEST_REGEXP.test(file)) { | ||
// Normalize paths to RequireJS module names. | ||
allTestFiles.push(pathToModule(file)); | ||
} | ||
}); | ||
require(['io.ox/core/extPatterns/stage'], function (Stage) { | ||
'use strict'; | ||
ox.testUtils.stubAppsuiteBody(); | ||
new Stage('io.ox/core/stages', { | ||
id: 'run_tests', | ||
index: 99999, | ||
run: function (baton) { | ||
requirejs.config({ | ||
// Karma serves files from '/base/apps' | ||
baseUrl: '/base/apps', | ||
// ask Require.js to load these files (all our tests) | ||
deps: allTestFiles, | ||
// start test run, once Require.js is done | ||
callback: window.__karma__.start | ||
}); | ||
} | ||
}); | ||
}); | ||
``` | ||
## Running the tests | ||
There are multiple targets provided in | ||
[shared-grunt-config](https://github.com/Open-Xchange-Frontend/shared-grunt-config). | ||
The recommended way is to run `grunt dev`. This will start a connect server, the karma | ||
test server and a watcher for changes. You can trigger a testrun manually by running | ||
`grunt testrun` in another terminal. This will be done automatically by the grunt watch | ||
task, after any source file of your project has been changed. | ||
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
17755
241
141