1 define(function (require
) {
2 var base_plugins
= ['about', 'accounts', 'composer', 'debug', 'goodbyeworld', 'helloworld', 'launchpad', 'logging'];
3 var registerSuite
= require('intern!object');
4 var assert
= require('intern/chai!assert');
5 var plugin_discoverer
= require('intern/dojo/node!../../framework/core/modules/plugin_discoverer.js');
6 var skyquakeEmitter
= require('intern/dojo/node!../../framework/core/modules/skyquakeEmitter.js');
7 var _
= require('intern/dojo/node!lodash');
8 var fs
= require('intern/dojo/node!fs');
10 name
: 'plugin_discoverer',
16 // TODO: Should cleanup plugin_discoverer instead and call that
17 setTimeout(function() {
18 var path
= process
.cwd() + '/plugins/helloworld/test.txt';
23 'Test init': function () {
24 var res
= plugin_discoverer
.init();
25 assert
.isUndefined(res
, 'return value is undefined');
27 'Test config': function() {
28 var path
= process
.cwd() + '/plugins';
29 var res
= plugin_discoverer
.config({
32 assert
.isUndefined(res
, 'return value is undefined');
34 'Test run plugin add discovery': function() {
35 var deferred
= this.async();
37 var plugins_detected
= [];
39 skyquakeEmitter
.on('plugin_discoverer.plugin_discovered', function(plugin_name
) {
40 plugins_detected
.push(plugin_name
);
41 if (_
.intersection(plugins_detected
, base_plugins
).length
== 8 ) {
42 // all expected plugins were discovered
43 deferred
.resolve('All expected plugins discovered');
47 var res
= plugin_discoverer
.run();
49 'Test run plugin update discovery': function() {
50 var deferred
= this.async();
52 setTimeout(function() {
53 var path
= process
.cwd() + '/plugins/helloworld/test.txt';
54 fs
.openSync(path
, 'a+');
57 skyquakeEmitter
.on('plugin_discoverer.plugin_updated', function(plugin_name
) {