Upgrading to dgeni-packages 0.21.4 gives us access to more properties on the API docs, which allows us to fix the following issues: Closes #19450 Closes #19452 Closes #19456
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { ApiPage } from './api.po';
 | ||
| 
 | ||
| describe('Api pages', function() {
 | ||
|   it('should show direct subclasses of a class', () => {
 | ||
|     const page = new ApiPage('api/forms/AbstractControlDirective');
 | ||
|     // We must use `as any` (here and below) because of broken typings for jasmine
 | ||
|     expect(page.getDescendants('class', true)).toEqual(['ControlContainer', 'NgControl'] as any);
 | ||
|   });
 | ||
| 
 | ||
|   it('should show direct and indirect subclasses of a class', () => {
 | ||
|     const page = new ApiPage('api/forms/AbstractControlDirective');
 | ||
|     expect(page.getDescendants('class')).toEqual(['ControlContainer', 'AbstractFormGroupDirective', 'NgControl'] as any);
 | ||
|   });
 | ||
| 
 | ||
|   it('should show child interfaces that extend an interface', () => {
 | ||
|     const page = new ApiPage('api/forms/Validator');
 | ||
|     expect(page.getDescendants('interface')).toEqual(['AsyncValidator'] as any);
 | ||
|   });
 | ||
| 
 | ||
|   it('should show classes that implement an interface', () => {
 | ||
|     const page = new ApiPage('api/animations/AnimationPlayer');
 | ||
|     expect(page.getDescendants('class')).toEqual(['NoopAnimationPlayer', 'MockAnimationPlayer'] as any);
 | ||
|   });
 | ||
| 
 | ||
|   it('should show type params of type-aliases', () => {
 | ||
|     const page = new ApiPage('api/common/http/HttpEvent');
 | ||
|     expect(page.getOverview('type-alias').getText()).toContain('type HttpEvent<T>');
 | ||
|   });
 | ||
| 
 | ||
|   it('should show readonly properties as getters', () => {
 | ||
|     const page = new ApiPage('api/common/http/HttpRequest');
 | ||
|     expect(page.getOverview('class').getText()).toContain('get body: T|null');
 | ||
|   });
 | ||
| 
 | ||
|   it('should not show parenthesis for getters', () => {
 | ||
|     const page = new ApiPage('api/core/NgModuleRef');
 | ||
|     expect(page.getOverview('class').getText()).toContain('get injector: Injector');
 | ||
|   });
 | ||
| 
 | ||
|   it('should show both type and initializer if set', () => {
 | ||
|     const page = new ApiPage('api/common/HashLocationStrategy');
 | ||
|     expect(page.getOverview('class').getText()).toContain('path(includeHash: boolean = false): string');
 | ||
|   });
 | ||
| });
 |