diff --git a/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts b/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts index 1bfce76af2..e9da4eb0c5 100644 --- a/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_view_compiler_i18n_spec.ts @@ -129,23 +129,25 @@ const verify = (input: string, output: string, extra: any = {}): void => { ({i18nUseExternalIds, ...(extra.compilerOptions || {})}); // invoke with file-based prefix translation names - let result = compile(files, angularFiles, opts(false)); - maybePrint(result.source, extra.verbose); - expect(verifyPlaceholdersIntegrity(result.source)).toBe(true); - expectEmit(result.source, output, 'Incorrect template'); - - if (extra.skipIdBasedCheck) return; + if (!extra.skipPathBasedCheck) { + const result = compile(files, angularFiles, opts(false)); + maybePrint(result.source, extra.verbose); + expect(verifyPlaceholdersIntegrity(result.source)).toBe(true); + expectEmit(result.source, output, 'Incorrect template'); + } // invoke with translation names based on external ids - result = compile(files, angularFiles, opts(true)); - maybePrint(result.source, extra.verbose); - const interpolationConfig = extra.inputArgs && extra.inputArgs.interpolation ? - InterpolationConfig.fromArray(extra.inputArgs.interpolation) : - undefined; - expect(verifyTranslationIds(input, result.source, extra.exceptions, interpolationConfig)) - .toBe(true); - expect(verifyPlaceholdersIntegrity(result.source)).toBe(true); - expectEmit(result.source, output, 'Incorrect template'); + if (!extra.skipIdBasedCheck) { + const result = compile(files, angularFiles, opts(true)); + maybePrint(result.source, extra.verbose); + const interpolationConfig = extra.inputArgs && extra.inputArgs.interpolation ? + InterpolationConfig.fromArray(extra.inputArgs.interpolation) : + undefined; + expect(verifyTranslationIds(input, result.source, extra.exceptions, interpolationConfig)) + .toBe(true); + expect(verifyPlaceholdersIntegrity(result.source)).toBe(true); + expectEmit(result.source, output, 'Incorrect template'); + } }; describe('i18n support in the view compiler', () => { @@ -589,6 +591,27 @@ describe('i18n support in the view compiler', () => { verify(input, output); }); + + it('should sanitize ids and generate proper const names', () => { + const input = ` +