require('reflect-metadata'); require('zone.js/dist/zone-node.js'); require('zone.js/dist/long-stack-trace-zone.js'); import {AnimateCmpNgFactory} from '../src/animate.ngfactory'; import {ReflectiveInjector, DebugElement, getDebugNode} from '@angular/core'; import {browserPlatform, BROWSER_APP_PROVIDERS} from '@angular/platform-browser'; describe('template codegen output', () => { function findTargetElement(elm: DebugElement): DebugElement { // the open-close-container is a child of the main container // if the template changes then please update the location below return elm.children[4]; } it('should apply the animate states to the element', (done) => { const appInjector = ReflectiveInjector.resolveAndCreate(BROWSER_APP_PROVIDERS, browserPlatform().injector); var comp = AnimateCmpNgFactory.create(appInjector); var debugElement = getDebugNode(comp.location.nativeElement); var targetDebugElement = findTargetElement(debugElement); comp.instance.setAsOpen(); comp.changeDetectorRef.detectChanges(); setTimeout(() => { expect(targetDebugElement.styles['height']).toEqual(null); expect(targetDebugElement.styles['borderColor']).toEqual('green'); expect(targetDebugElement.styles['color']).toEqual('green'); comp.instance.setAsClosed(); comp.changeDetectorRef.detectChanges(); setTimeout(() => { expect(targetDebugElement.styles['height']).toEqual('0px'); expect(targetDebugElement.styles['borderColor']).toEqual('maroon'); expect(targetDebugElement.styles['color']).toEqual('maroon'); done(); }, 0); }, 0); }); it('should apply the default animate state to the element', (done) => { const appInjector = ReflectiveInjector.resolveAndCreate(BROWSER_APP_PROVIDERS, browserPlatform().injector); var comp = AnimateCmpNgFactory.create(appInjector); var debugElement = getDebugNode(comp.location.nativeElement); var targetDebugElement = findTargetElement(debugElement); comp.instance.setAsSomethingElse(); comp.changeDetectorRef.detectChanges(); setTimeout(() => { expect(targetDebugElement.styles['height']).toEqual(null); expect(targetDebugElement.styles['borderColor']).toEqual('black'); expect(targetDebugElement.styles['color']).toEqual('black'); comp.instance.setAsClosed(); comp.changeDetectorRef.detectChanges(); setTimeout(() => { expect(targetDebugElement.styles['height']).not.toEqual(null); expect(targetDebugElement.styles['borderColor']).not.toEqual('grey'); expect(targetDebugElement.styles['color']).not.toEqual('grey'); done(); }, 0); }, 0); }); });