From 795e1e8a38f872b93665b8cae9c1be03f74007e3 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Fri, 3 Aug 2018 15:32:08 -0700 Subject: [PATCH] test(ivy): improve error message for the compiler compliance test (#25291) before: ``` Expected to find features 'import * as i0 from "@angular/core"; import { Directive, Input } from '@angular/core'; ``` after: ``` Failed to find "template" after "...Component_Factory() { return new MyComponent(); }," in: 'import * as i0 from "@angular/core"; import { Directive, Input } from '@angular/core';``` ``` PR Close #25291 --- packages/compiler-cli/test/compliance/mock_compile.ts | 8 +++++++- .../compiler-cli/test/compliance/mock_compiler_spec.ts | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/compiler-cli/test/compliance/mock_compile.ts b/packages/compiler-cli/test/compliance/mock_compile.ts index e258951271..f2d45d7ae4 100644 --- a/packages/compiler-cli/test/compliance/mock_compile.ts +++ b/packages/compiler-cli/test/compliance/mock_compile.ts @@ -74,8 +74,14 @@ export function expectEmit( const m = source.match(regexp); const expectedPiece = pieces[i - 1] == IDENTIFIER ? '' : pieces[i - 1]; if (!m) { + // display at most `contextLength` characters of the line preceding the error location + const contextLength = 50; + const fullContext = source.substring(source.lastIndexOf('\n', last) + 1, last); + const context = fullContext.length > contextLength ? + `...${fullContext.substr(-contextLength)}` : + fullContext; fail( - `${description}: Expected to find ${expectedPiece} '${source.substr(0,last)}[<---HERE expected "${expectedPiece}"]${source.substr(last)}'`); + `${description}: Failed to find "${expectedPiece}" after "${context}" in:\n'${source.substr(0,last)}[<---HERE expected "${expectedPiece}"]${source.substr(last)}'`); return; } else { last = (m.index || 0) + m[0].length; diff --git a/packages/compiler-cli/test/compliance/mock_compiler_spec.ts b/packages/compiler-cli/test/compliance/mock_compiler_spec.ts index 77e5320f5f..4b0e3ab4d4 100644 --- a/packages/compiler-cli/test/compliance/mock_compiler_spec.ts +++ b/packages/compiler-cli/test/compliance/mock_compiler_spec.ts @@ -7,7 +7,7 @@ */ -import {MockDirectory, setup} from '@angular/compiler/test/aot/test_util'; +import {setup} from '@angular/compiler/test/aot/test_util'; import {compile, expectEmit} from './mock_compile'; describe('mock_compiler', () => {