62 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								const testPackage = require('../../helpers/test-package');
							 | 
						||
| 
								 | 
							
								const Dgeni = require('dgeni');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('extractPipeParams processor', () => {
							 | 
						||
| 
								 | 
							
								  let processor;
							 | 
						||
| 
								 | 
							
								  beforeEach(() => {
							 | 
						||
| 
								 | 
							
								    const dgeni = new Dgeni([testPackage('angular-api-package')]);
							 | 
						||
| 
								 | 
							
								    const injector = dgeni.configureInjector();
							 | 
						||
| 
								 | 
							
								    processor = injector.get('extractPipeParams');
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should be available on the injector', () => {
							 | 
						||
| 
								 | 
							
								    expect(processor.$process).toBeDefined();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should run before the correct processor', () => {
							 | 
						||
| 
								 | 
							
								    expect(processor.$runBefore).toEqual(['docs-processed']);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should run after the correct processor', () => {
							 | 
						||
| 
								 | 
							
								    expect(processor.$runAfter).toEqual(['extractDecoratedClassesProcessor']);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should throw an error if the pipe document does not contain a `transform` method', () => {
							 | 
						||
| 
								 | 
							
								    expect(() => processor.$process([{ docType: 'pipe' }])).toThrowError('Missing `transform` method - pipes must implement PipeTransform interface - doc (pipe) ');
							 | 
						||
| 
								 | 
							
								    expect(() => processor.$process([{ docType: 'pipe', members: [] }])).toThrowError('Missing `transform` method - pipes must implement PipeTransform interface - doc (pipe) ');
							 | 
						||
| 
								 | 
							
								    expect(() => processor.$process([{ docType: 'pipe', members: [ { name: 'notTransform' }] }])).toThrowError('Missing `transform` method - pipes must implement PipeTransform interface - doc (pipe) ');
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should extract the pipe name', () => {
							 | 
						||
| 
								 | 
							
								    const docs = [ { docType: 'pipe', pipeOptions: { name: 'testPipe' }, members: [ { name: 'transform', parameterDocs: [] }] } ];
							 | 
						||
| 
								 | 
							
								    processor.$process(docs);
							 | 
						||
| 
								 | 
							
								    expect(docs[0].pipeName).toEqual('testPipe');
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should extract the value parameter', () => {
							 | 
						||
| 
								 | 
							
								    const valueParam = {};
							 | 
						||
| 
								 | 
							
								    const pipeParam1 = {};
							 | 
						||
| 
								 | 
							
								    const pipeParam2 = {};
							 | 
						||
| 
								 | 
							
								    const docs = [ { docType: 'pipe', pipeOptions: { name: 'testPipe' }, members: [
							 | 
						||
| 
								 | 
							
								      { name: 'transform', parameterDocs: [valueParam, pipeParam1, pipeParam2] }
							 | 
						||
| 
								 | 
							
								    ] } ];
							 | 
						||
| 
								 | 
							
								    processor.$process(docs);
							 | 
						||
| 
								 | 
							
								    expect(docs[0].valueParam).toBe(valueParam);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it('should extract the pipe parameters', () => {
							 | 
						||
| 
								 | 
							
								    const valueParam = {};
							 | 
						||
| 
								 | 
							
								    const pipeParam1 = {};
							 | 
						||
| 
								 | 
							
								    const pipeParam2 = {};
							 | 
						||
| 
								 | 
							
								    const docs = [ { docType: 'pipe', pipeOptions: { name: 'testPipe' }, members: [
							 | 
						||
| 
								 | 
							
								      { name: 'transform', parameterDocs: [valueParam, pipeParam1, pipeParam2] }
							 | 
						||
| 
								 | 
							
								    ] } ];
							 | 
						||
| 
								 | 
							
								    processor.$process(docs);
							 | 
						||
| 
								 | 
							
								    expect(docs[0].pipeParams.length).toEqual(2);
							 | 
						||
| 
								 | 
							
								    expect(docs[0].pipeParams[0]).toBe(pipeParam1);
							 | 
						||
| 
								 | 
							
								    expect(docs[0].pipeParams[1]).toBe(pipeParam2);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |