Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: test/test_support.ts

Issue 2416003003: Update package name, update and lock clang-format and tslint versions, and format all source files … (Closed)
Patch Set: Use ES6 Map and Set instead of Object literals to avoid ordering instability across different Node … Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/facade_converter_test.ts ('k') | tsconfig.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /// <reference path="../typings/chai/chai.d.ts"/> 1 /// <reference path="../typings/chai/chai.d.ts"/>
2 /// <reference path="../typings/mocha/mocha.d.ts"/> 2 /// <reference path="../typings/mocha/mocha.d.ts"/>
3 /// <reference path="../typings/node/node.d.ts"/> 3 /// <reference path="../typings/node/node.d.ts"/>
4 import chai = require('chai'); 4 import chai = require('chai');
5 import fs = require('fs'); 5 import fs = require('fs');
6 import main = require('../lib/main'); 6 import main = require('../lib/main');
7 import ts = require('typescript'); 7 import ts = require('typescript');
8 8
9 export type StringMap = { 9 export type StringMap = {
10 [k: string]: string 10 [k: string]: string
11 }; 11 };
12 export type Input = string | StringMap; 12 export type Input = string | StringMap;
13 13
14 export function expectTranslate(tsCode: Input, options: main.TranspilerOptions = {}) { 14 export function expectTranslate(tsCode: Input, options?: main.TranspilerOptions) {
15 options = options || {};
15 let result = translateSource(tsCode, options); 16 let result = translateSource(tsCode, options);
16 return chai.expect(result); 17 return chai.expect(result);
17 } 18 }
18 19
19 export function expectErroneousCode(tsCode: Input, options: main.TranspilerOptio ns = {}) { 20 export function expectErroneousCode(tsCode: Input, options?: main.TranspilerOpti ons) {
21 options = options || {};
20 options.failFast = false; // Collect *all* errors. 22 options.failFast = false; // Collect *all* errors.
21 return chai.expect(() => translateSource(tsCode, options)); 23 return chai.expect(() => translateSource(tsCode, options));
22 } 24 }
23 25
24 let compilerOptions = main.COMPILER_OPTIONS; 26 let compilerOptions = main.COMPILER_OPTIONS;
25 let defaultLibName = ts.getDefaultLibFileName(compilerOptions); 27 let defaultLibName = ts.getDefaultLibFileName(compilerOptions);
26 let libSource = fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions), 'utf- 8'); 28 let libSource = fs.readFileSync(ts.getDefaultLibFilePath(compilerOptions), 'utf- 8');
27 let libSourceFile: ts.SourceFile; 29 let libSourceFile: ts.SourceFile;
28 30
29 export function parseFiles(nameToContent: StringMap): ts.Program { 31 export function parseFiles(nameToContent: StringMap): ts.Program {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 if (program.getSyntacticDiagnostics().length > 0) { 67 if (program.getSyntacticDiagnostics().length > 0) {
66 // Throw first error. 68 // Throw first error.
67 let first = program.getSyntacticDiagnostics()[0]; 69 let first = program.getSyntacticDiagnostics()[0];
68 throw new Error(`${first.start}: ${first.messageText} in ${nameToContent[ent ryPoints[0]]}`); 70 throw new Error(`${first.start}: ${first.messageText} in ${nameToContent[ent ryPoints[0]]}`);
69 } 71 }
70 return program; 72 return program;
71 } 73 }
72 74
73 export const FAKE_MAIN = 'demo/some/main.ts'; 75 export const FAKE_MAIN = 'demo/some/main.ts';
74 76
75 export function translateSources(contents: Input, options: main.TranspilerOption s = {}): StringMap { 77 export function translateSources(contents: Input, options?: main.TranspilerOptio ns): StringMap {
78 options = options || {};
76 // Default to quick stack traces. 79 // Default to quick stack traces.
77 if (!options.hasOwnProperty('failFast')) options.failFast = true; 80 if (!options.hasOwnProperty('failFast')) options.failFast = true;
78 let namesToContent: StringMap; 81 let namesToContent: StringMap;
79 if (typeof contents === 'string') { 82 if (typeof contents === 'string') {
80 namesToContent = {}; 83 namesToContent = {};
81 namesToContent[FAKE_MAIN] = contents; 84 namesToContent[FAKE_MAIN] = contents;
82 } else { 85 } else {
83 namesToContent = contents; 86 namesToContent = contents;
84 } 87 }
85 options.enforceUnderscoreConventions = true; 88 options.enforceUnderscoreConventions = true;
86 let transpiler = new main.Transpiler(options); 89 let transpiler = new main.Transpiler(options);
87 let program = parseFiles(namesToContent); 90 let program = parseFiles(namesToContent);
88 return transpiler.translateProgram(program); 91 return transpiler.translateProgram(program);
89 } 92 }
90 93
91 export function translateSource(contents: Input, options: main.TranspilerOptions = {}): string { 94 export function translateSource(contents: Input, options?: main.TranspilerOption s): string {
95 options = options || {};
92 let results = translateSources(contents, options); 96 let results = translateSources(contents, options);
93 // Return the main outcome, from 'main.ts'. 97 // Return the main outcome, from 'main.ts'.
94 let result = results[FAKE_MAIN]; 98 let result = results[FAKE_MAIN];
95 // strip out the package:js import as it clutters the output. 99 // strip out the package:js import as it clutters the output.
96 result = result.replace(/import "package:js\/js.dart";\s+/g, ''); 100 result = result.replace(/import "package:js\/js.dart";\s+/g, '');
97 result = result.replace(/^@JS\("?[^)]*"?\)\s+library [^;]+;\s+/g, ''); 101 result = result.replace(/^@JS\("?[^)]*"?\)\s+library [^;]+;\s+/g, '');
98 return result.trim(); 102 return result.trim();
99 } 103 }
OLDNEW
« no previous file with comments | « test/facade_converter_test.ts ('k') | tsconfig.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698