On Tue Feb 25 03:24 AM, Gert-Jan Braas wrote:
> I've added some testing for firefoxos in plugman, but am a bit stuck on
> the
> uninstall handler.
>
> test:
> describe('of <source-file> elements', function() {
> it('should remove stuff by calling common.removeFile',
> function(done) {
> var s = spyOn(common, 'removeFile');
>
> install('firefoxos', temp, dummyplugin, plugins_dir, {})
> .then(function() {
> var source = copyArray(valid_source);
> firefoxos['source-file'].uninstall(source[0], temp);
> expect(s).toHaveBeenCalledWith(temp,
> path.join('src', 'plugins', 'dummyplugin', 'DummyPlugin.js'));
> done();
> });
> });
> });
>
Jasmine runs synchronously, so you need to 'waitsFor' promise:
runs(function() {
setDonePromise( install('firefoxos', temp, dummyplugin,
plugins_dir, {}) )
});
waitsFor(function() { return done; }, 'install promise never
resolved', 200);
runs(function() {
var source = copyArray(valid_source);
firefoxos['source-file'].uninstall(source[0], temp);
expect(s).toHaveBeenCalledWith(temp,path.join('src', 'plugins',
'dummyplugin', 'DummyPlugin.js'));
});
This example might help:
https://github.com/jbondc/cordova-plugman/blob/master/spec/install.spec.js#L115
> - how is e.g.
> require('../plugman').emit('verbose', 'Install complete for ' +
> plugin_id + ' on ' + platform + '.');
> controled? can i set the emit level and where can i find it's output?
It's a wrapper for node's event emitter:
https://github.com/apache/cordova-plugman/blob/master/src/events.js
https://github.com/jbondc/cordova-plugman/blob/master/plugman.js#L58
By itself it doesn't "log" anything, just tracks events. You to map events to
console.log()
An example here:
https://github.com/jbondc/cordova-plugman/blob/master/spec/common.js
cd spec
node-jasmine test.spec.js -d verbose
> Can it be used running tests (npm test)?
Would be nice, npm parses the commands on its own so doesn’t delegate any flags
etc.. related to:
https://github.com/npm/npm/issues/3494