From e1e0ddb910590a0c67482f60c0bbb2abfcd5a82e Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Thu, 12 Jan 2012 17:10:48 -0800 Subject: docs(inject/module): add documentation --- src/angular-mocks.js | 118 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 46 deletions(-) diff --git a/src/angular-mocks.js b/src/angular-mocks.js index d2dbb114..1772ebf1 100644 --- a/src/angular-mocks.js +++ b/src/angular-mocks.js @@ -890,50 +890,6 @@ window.jstestdriver && (function(window) { })(window); -/** - * @ngdoc function - * @name angular.mock.inject - * @description - * - * *NOTE*: this is not an injectable instance, just a globally available function on window. - * - * This function wraps a test method into an injectable method. It create one - * {@link angular.module.AUTO.$injector $injector} per test, which is then used for testing. - * - * Here is an example of what a typical jasmine tests looks like with the inject method. - *
- *   describe('MyApp', function() {
- *
- *     // Argument inference is used to inject the $provide service
- *     beforeEach(inject(function($provide, $rootScope) {
- *       // $provide service is configured as needed
- *       $provide.value('version', 'v1.0.1');
- *       $rootScope.value = 123;
- *     });
- *
- *     // Argument inference is used to inject the $rootScope as well as the version
- *     it('should provide a version', inject(function($rootScope, version) {
- *       expect(version).toEqual('v1.0.1');
- *       expect($rootScope.value).toEqual(123);
- *     });
- *
- *     // The inject can also chain the methods
- *     it('should override a version and test the new version is injected', inject(
- *       function($provide) {
- *         $provide.value('version', 'overridden'); // override version here
- *       },
- *       function(version) {
- *         expect(version).toEqual('overridden');
- *       }
- *     ));
- *
- *   });
- *
- * 
- * - * @param {*} fns... any number of functions which will be injected using the injector. - * @return a method - */ window.jasmine && (function(window) { function getCurrentSpec() { @@ -945,7 +901,24 @@ window.jasmine && (function(window) { return spec && spec.queue.running; } - window.module = function() { + /** + * @ngdoc function + * @name angular.mock.module + * @description + * + * *NOTE*: This is function is also published on window for easy access. + * *NOTE*: Only available with {@link http://pivotal.github.com/jasmine/ jasmine}. + * + * This function registers a module configuration code. It collects the configuration information + * which will be used when the injector is created by {@link angular.mock.inject inject}. + * + * See {@link angular.mock.inject inject} for usage example + * + * @param {...(string|Function)} fns any number of modules which are represented as string + * aliases or as anonymous module initialization functions. The modules are used to + * configure the injector. The 'ng' and 'ngMock' modules are automatically loaded. + */ + window.module = angular.mock.module = function() { var moduleFns = Array.prototype.slice.call(arguments, 0); var stack = Error('Declaration Location').stack; return isSpecRunning() ? workFn() : workFn; @@ -962,7 +935,60 @@ window.jasmine && (function(window) { } } }; - window.inject = function() { + + /** + * @ngdoc function + * @name angular.mock.inject + * @description + * + * *NOTE*: This is function is also published on window for easy access. + * *NOTE*: Only available with {@link http://pivotal.github.com/jasmine/ jasmine}. + * + * The inject function wraps a function into an injectable function. The inject() creates new + * instance of {@link angular.module.AUTO.$injector $injector} per test, which is then used for + * resolving references. + * + * See also {@link angular.mock.module module} + * + * Example of what a typical jasmine tests looks like with the inject method. + *
+   *
+   *   angular.module('myTestsModule', [], function($provide) {
+   *     $provide.value('mode', 'test');
+   *   });
+   *
+   *   describe('MyApp', function() {
+   *
+   *     // you can list multiple module function or aliases
+   *     // which will be used in creating the injector
+   *     beforeEach(module('myTestModule', function($provide) {
+   *       // $provide service is configured as needed
+   *       $provide.value('version', 'v1.0.1');
+   *     });
+   *
+   *     // The inject() is used to get references.
+   *     it('should provide a version', inject(function(mode, version) {
+   *       expect(version).toEqual('v1.0.1');
+   *       expect(mode).toEqual('test');
+   *     });
+   *
+   *     // The inject and module method can also be used inside of the it or beforeEach
+   *     it('should override a version and test the new version is injected', function(){
+   *       module(function($provide) {
+   *         $provide.value('version', 'overridden'); // override version here
+   *       });
+   *       inject(function(version) {
+   *         expect(version).toEqual('overridden');
+   *       });
+   *     ));
+   *
+   *   });
+   *
+   * 
+ * + * @param {...Function} fns any number of functions which will be injected using the injector. + */ + window.inject = angular.mock.inject = function() { var blockFns = Array.prototype.slice.call(arguments, 0); var stack = Error('Declaration Location').stack; return isSpecRunning() ? workFn() : workFn; -- cgit v1.2.3