var mockPackage = require('../mocks/mockPackage'); var Dgeni = require('dgeni'); describe('extractDecoratedClasses processor', function() { var dgeni, injector, processor; beforeEach(function() { dgeni = new Dgeni([mockPackage()]); injector = dgeni.configureInjector(); processor = injector.get('extractDecoratedClassesProcessor'); }); it('should extract specified decorator arguments', function() { var doc1 = { id: '@angular/common/ngFor', name: 'ngFor', docType: 'class', decorators: [ { name: 'Directive', arguments: ['{selector: \'[ng-for][ng-for-of]\', properties: [\'ngForOf\']}'], argumentInfo: [ { selector: '[ng-for][ng-for-of]', properties: ['ngForOf'] } ] } ] }; var doc2 = { id: '@angular/core/DecimalPipe', name: 'DecimalPipe', docType: 'class', decorators: [ { name: 'Pipe', arguments: ['{name: \'number\'}'], argumentInfo: [{ name: 'number' }]} ] }; processor.$process([doc1, doc2]); expect(doc1).toEqual(jasmine.objectContaining({ id: '@angular/common/ngFor', name: 'ngFor', docType: 'directive', directiveOptions: { selector: '[ng-for][ng-for-of]', properties: ['ngForOf'] } })); expect(doc2).toEqual(jasmine.objectContaining({ id: '@angular/core/DecimalPipe', name: 'DecimalPipe', docType: 'pipe', pipeOptions: { name: 'number' } })); }); });