Skip to content

Commit

Permalink
fix(dialog-service): fix no fail for undefined moduleId
Browse files Browse the repository at this point in the history
fix #312
  • Loading branch information
StrahilKazlachev committed Jul 8, 2017
1 parent fd58f2a commit e90a9d8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/dialog-service.ts
Expand Up @@ -78,7 +78,11 @@ export class DialogService {


private ensureViewModel(compositionContext: CompositionContext): Promise<CompositionContext> { private ensureViewModel(compositionContext: CompositionContext): Promise<CompositionContext> {
if (typeof compositionContext.viewModel === 'function') { if (typeof compositionContext.viewModel === 'function') {
compositionContext.viewModel = Origin.get(compositionContext.viewModel).moduleId; const moduleId = Origin.get(compositionContext.viewModel).moduleId;
if (!moduleId) {
return Promise.reject(new Error(`Can not resolve "moduleId" of "${compositionContext.viewModel.name}".`));
}
compositionContext.viewModel = moduleId;
} }


if (typeof compositionContext.viewModel === 'string') { if (typeof compositionContext.viewModel === 'string') {
Expand Down
6 changes: 6 additions & 0 deletions test/unit/dialog-service.spec.ts
Expand Up @@ -130,6 +130,12 @@ describe('DialogService', () => {
done(); done();
}); });


it('should get rejected when the "moduleId" of the provided view model can not be resolved ', async done => {
const settings = { viewModel: class {} };
await _failure(() => dialogService.open(settings), done);
done();
});

it('propagates errors', async done => { it('propagates errors', async done => {
const expectdError = new Error('Expected error.'); const expectdError = new Error('Expected error.');
spyOn(TestElement.prototype, 'canActivate').and.callFake(() => { throw expectdError; }); spyOn(TestElement.prototype, 'canActivate').and.callFake(() => { throw expectdError; });
Expand Down

0 comments on commit e90a9d8

Please sign in to comment.