@ngneat/spectator
Version:
A powerful tool to simplify your Angular tests
29 lines • 4.07 kB
JavaScript
import { DomSpectator } from '../base/dom-spectator';
import { setHostProps } from '../internals/query';
/**
* @publicApi
*/
export class SpectatorDirective extends DomSpectator {
constructor(hostComponent, fixture, debugElement, instance, element) {
super(fixture, debugElement, instance, element);
this.hostComponent = hostComponent;
this.fixture = fixture;
this.debugElement = debugElement;
this.instance = instance;
this.element = element;
}
get directive() {
return this.instance;
}
inject(token, fromDirectiveInjector = false) {
if (fromDirectiveInjector) {
return this.debugElement.injector.get(token);
}
return super.inject(token);
}
setHostInput(input, value) {
setHostProps(this.fixture.componentRef, input, value);
this.detectChanges();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY3RhdG9yLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwZWN0YXRvci9zcmMvbGliL3NwZWN0YXRvci1kaXJlY3RpdmUvc3BlY3RhdG9yLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBSzVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUF5QyxTQUFRLFlBQWU7SUFDM0UsWUFDUyxhQUFnQixFQUNoQixPQUE4QixFQUM5QixZQUEwQixFQUN2QixRQUFXLEVBQ2QsT0FBZ0I7UUFFdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTnpDLGtCQUFhLEdBQWIsYUFBYSxDQUFHO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQUc7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFTO0lBR3pCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxNQUFNLENBQUksS0FBZSxFQUFFLHdCQUFpQyxLQUFLO1FBQ3RFLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQWlCLENBQUM7UUFDL0QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBSU0sWUFBWSxDQUFDLEtBQVUsRUFBRSxLQUFXO1FBQ3pDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IERvbVNwZWN0YXRvciB9IGZyb20gJy4uL2Jhc2UvZG9tLXNwZWN0YXRvcic7XG5pbXBvcnQgeyBzZXRIb3N0UHJvcHMsIHNldFByb3BzIH0gZnJvbSAnLi4vaW50ZXJuYWxzL3F1ZXJ5JztcbmltcG9ydCB7IFNweU9iamVjdCB9IGZyb20gJy4uL21vY2snO1xuaW1wb3J0IHsgSG9zdENvbXBvbmVudCB9IGZyb20gJy4uL3NwZWN0YXRvci1ob3N0L2hvc3QtY29tcG9uZW50JztcbmltcG9ydCB7IFRva2VuIH0gZnJvbSAnLi4vdG9rZW4nO1xuXG4vKipcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNsYXNzIFNwZWN0YXRvckRpcmVjdGl2ZTxELCBIID0gSG9zdENvbXBvbmVudD4gZXh0ZW5kcyBEb21TcGVjdGF0b3I8RD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaG9zdENvbXBvbmVudDogSCxcbiAgICBwdWJsaWMgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LFxuICAgIHB1YmxpYyBkZWJ1Z0VsZW1lbnQ6IERlYnVnRWxlbWVudCxcbiAgICBwcm90ZWN0ZWQgaW5zdGFuY2U6IEQsXG4gICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnQsXG4gICkge1xuICAgIHN1cGVyKGZpeHR1cmUsIGRlYnVnRWxlbWVudCwgaW5zdGFuY2UsIGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXJlY3RpdmUoKTogRCB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFuY2U7XG4gIH1cblxuICBwdWJsaWMgaW5qZWN0PFQ+KHRva2VuOiBUb2tlbjxUPiwgZnJvbURpcmVjdGl2ZUluamVjdG9yOiBib29sZWFuID0gZmFsc2UpOiBTcHlPYmplY3Q8VD4ge1xuICAgIGlmIChmcm9tRGlyZWN0aXZlSW5qZWN0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlYnVnRWxlbWVudC5pbmplY3Rvci5nZXQodG9rZW4pIGFzIFNweU9iamVjdDxUPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIuaW5qZWN0KHRva2VuKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRIb3N0SW5wdXQ8SyBleHRlbmRzIGtleW9mIEg+KGlucHV0OiBQYXJ0aWFsPEg+KTogdm9pZDtcbiAgcHVibGljIHNldEhvc3RJbnB1dDxLIGV4dGVuZHMga2V5b2YgSD4oaW5wdXQ6IEssIGlucHV0VmFsdWU6IEhbS10pOiB2b2lkO1xuICBwdWJsaWMgc2V0SG9zdElucHV0KGlucHV0OiBhbnksIHZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgc2V0SG9zdFByb3BzKHRoaXMuZml4dHVyZS5jb21wb25lbnRSZWYsIGlucHV0LCB2YWx1ZSk7XG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiJdfQ==