72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {ddescribe, describe, it, iit, expect, beforeEach} from '@angular/core/testing';
 | |
| import {ViewResolver} from '@angular/compiler/src/view_resolver';
 | |
| import {Component, ViewMetadata} from '@angular/core/src/metadata';
 | |
| 
 | |
| class SomeDir {}
 | |
| class SomePipe {}
 | |
| 
 | |
| @Component({
 | |
|   selector: 'sample',
 | |
|   template: "some template",
 | |
|   directives: [SomeDir],
 | |
|   pipes: [SomePipe],
 | |
|   styles: ["some styles"]
 | |
| })
 | |
| class ComponentWithView {
 | |
| }
 | |
| 
 | |
| @Component({
 | |
|   selector: 'sample',
 | |
|   template: "some template",
 | |
|   directives: [SomeDir],
 | |
|   pipes: [SomePipe],
 | |
|   styles: ["some styles"]
 | |
| })
 | |
| class ComponentWithTemplate {
 | |
| }
 | |
| 
 | |
| @Component({selector: 'sample', template: "some template"})
 | |
| class ComponentWithViewTemplate {
 | |
| }
 | |
| 
 | |
| @Component({selector: 'sample', templateUrl: "some template url", template: "some template"})
 | |
| class ComponentWithViewTemplateUrl {
 | |
| }
 | |
| 
 | |
| @Component({selector: 'sample'})
 | |
| class ComponentWithoutView {
 | |
| }
 | |
| 
 | |
| 
 | |
| class SimpleClass {}
 | |
| 
 | |
| export function main() {
 | |
|   describe("ViewResolver", () => {
 | |
|     var resolver: ViewResolver;
 | |
| 
 | |
|     beforeEach(() => { resolver = new ViewResolver(); });
 | |
| 
 | |
|     it('should read out the View metadata from the Component metadata', () => {
 | |
|       var viewMetadata = resolver.resolve(ComponentWithTemplate);
 | |
|       expect(viewMetadata)
 | |
|           .toEqual(new ViewMetadata({
 | |
|             template: "some template",
 | |
|             directives: [SomeDir],
 | |
|             pipes: [SomePipe],
 | |
|             styles: ["some styles"]
 | |
|           }));
 | |
|     });
 | |
| 
 | |
|     it('should throw when Component has no View decorator and no template is set', () => {
 | |
|       expect(() => resolver.resolve(ComponentWithoutView))
 | |
|           .toThrowErrorWith(
 | |
|               "Component 'ComponentWithoutView' must have either 'template' or 'templateUrl' set");
 | |
|     });
 | |
| 
 | |
|     it('should throw when simple class has no View decorator and no template is set', () => {
 | |
|       expect(() => resolver.resolve(SimpleClass))
 | |
|           .toThrowErrorWith("Could not compile 'SimpleClass' because it is not a component.");
 | |
|     });
 | |
|   });
 | |
| }
 |