diff --git a/tests/array_spread/__snapshots__/jsfmt.spec.js.snap b/tests/array_spread/__snapshots__/jsfmt.spec.js.snap index f9fb0f62..12ef0c6e 100644 --- a/tests/array_spread/__snapshots__/jsfmt.spec.js.snap +++ b/tests/array_spread/__snapshots__/jsfmt.spec.js.snap @@ -2,7 +2,7 @@ exports[`multiple.js 1`] = ` ====================================options===================================== -parsers: ["flow", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== diff --git a/tests/array_spread/jsfmt.spec.js b/tests/array_spread/jsfmt.spec.js index a842e134..eb85eda6 100644 --- a/tests/array_spread/jsfmt.spec.js +++ b/tests/array_spread/jsfmt.spec.js @@ -1 +1 @@ -run_spec(__dirname, ["flow", "typescript"]); +run_spec(__dirname, ["babel", "flow", "typescript"]); diff --git a/tests/es6modules/__snapshots__/jsfmt.spec.js.snap b/tests/es6modules/__snapshots__/jsfmt.spec.js.snap index 44ea1bf0..4788c1e6 100644 --- a/tests/es6modules/__snapshots__/jsfmt.spec.js.snap +++ b/tests/es6modules/__snapshots__/jsfmt.spec.js.snap @@ -2,21 +2,7 @@ exports[`export_default_arrow_expression.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default () => {}; - -=====================================output===================================== -export default () => {}; - -================================================================================ -`; - -exports[`export_default_arrow_expression.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -30,21 +16,7 @@ export default () => {}; exports[`export_default_call_expression.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default foo() - -=====================================output===================================== -export default foo(); - -================================================================================ -`; - -exports[`export_default_call_expression.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -58,21 +30,7 @@ export default foo(); exports[`export_default_class_declaration.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default class Foo {} - -=====================================output===================================== -export default class Foo {} - -================================================================================ -`; - -exports[`export_default_class_declaration.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -86,21 +44,7 @@ export default class Foo {} exports[`export_default_class_expression.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default (class foobar {}) - -=====================================output===================================== -export default (class foobar {}); - -================================================================================ -`; - -exports[`export_default_class_expression.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -114,21 +58,7 @@ export default (class foobar {}); exports[`export_default_function_declaration.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default function() {} - -=====================================output===================================== -export default function() {} - -================================================================================ -`; - -exports[`export_default_function_declaration.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -142,21 +72,7 @@ export default function() {} exports[`export_default_function_declaration_async.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default async function foo() {} - -=====================================output===================================== -export default async function foo() {} - -================================================================================ -`; - -exports[`export_default_function_declaration_async.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -170,21 +86,7 @@ export default async function foo() {} exports[`export_default_function_declaration_named.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default function f(){} - -=====================================output===================================== -export default function f() {} - -================================================================================ -`; - -exports[`export_default_function_declaration_named.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -198,21 +100,7 @@ export default function f() {} exports[`export_default_function_expression.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default (function() {}); - -=====================================output===================================== -export default (function() {}); - -================================================================================ -`; - -exports[`export_default_function_expression.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -226,21 +114,7 @@ export default (function() {}); exports[`export_default_function_expression_named.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default (function f(){}) - -=====================================output===================================== -export default (function f() {}); - -================================================================================ -`; - -exports[`export_default_function_expression_named.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -254,21 +128,7 @@ export default (function f() {}); exports[`export_default_new_expression.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -export default new Foo(); - -=====================================output===================================== -export default new Foo(); - -================================================================================ -`; - -exports[`export_default_new_expression.js 2`] = ` -====================================options===================================== -parsers: ["babel", "typescript"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== diff --git a/tests/es6modules/jsfmt.spec.js b/tests/es6modules/jsfmt.spec.js index 9d2f08ad..eb85eda6 100644 --- a/tests/es6modules/jsfmt.spec.js +++ b/tests/es6modules/jsfmt.spec.js @@ -1,3 +1 @@ -run_spec(__dirname, ["flow"]); -// FIXME export_default_function_declaration_async.js flow != babel output -run_spec(__dirname, ["babel", "typescript"]); +run_spec(__dirname, ["babel", "flow", "typescript"]); diff --git a/tests/jsx_escape/__snapshots__/jsfmt.spec.js.snap b/tests/jsx_escape/__snapshots__/jsfmt.spec.js.snap index b43f585d..881ea7cd 100644 --- a/tests/jsx_escape/__snapshots__/jsfmt.spec.js.snap +++ b/tests/jsx_escape/__snapshots__/jsfmt.spec.js.snap @@ -2,21 +2,7 @@ exports[`escape.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -
<
- -=====================================output===================================== -
<
; - -================================================================================ -`; - -exports[`escape.js 2`] = ` -====================================options===================================== -parsers: ["babel"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== @@ -30,41 +16,7 @@ printWidth: 80 exports[`nbsp.js 1`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 - | printWidth -=====================================input====================================== -many_nbsp =
   
-single_nbsp =
 
-nbsp_with_newline = -
-   -
- -many_raw_nbsp =
   
-many_raw_spaces =
- - -amp = foo & bar -raw_amp = foo & bar - -=====================================output===================================== -many_nbsp =
   
; -single_nbsp =
 
; -nbsp_with_newline =
 
; - -many_raw_nbsp =
   
; -many_raw_spaces =
; - -amp = foo & bar; -raw_amp = foo & bar; - -================================================================================ -`; - -exports[`nbsp.js 2`] = ` -====================================options===================================== -parsers: ["babel"] +parsers: ["babel", "flow", "typescript"] printWidth: 80 | printWidth =====================================input====================================== diff --git a/tests/jsx_escape/jsfmt.spec.js b/tests/jsx_escape/jsfmt.spec.js index 52f49c4f..eb85eda6 100644 --- a/tests/jsx_escape/jsfmt.spec.js +++ b/tests/jsx_escape/jsfmt.spec.js @@ -1,3 +1 @@ -run_spec(__dirname, ["flow"]); -// FIXME nbsp.js flow != babel output, waiting for: https://github.com/babel/babylon/pull/344 -run_spec(__dirname, ["babel"]); +run_spec(__dirname, ["babel", "flow", "typescript"]); diff --git a/tests/no-semi/__snapshots__/jsfmt.spec.js.snap b/tests/no-semi/__snapshots__/jsfmt.spec.js.snap index e0278222..c4d85ea5 100644 --- a/tests/no-semi/__snapshots__/jsfmt.spec.js.snap +++ b/tests/no-semi/__snapshots__/jsfmt.spec.js.snap @@ -36,42 +36,7 @@ x; exports[`comments.js 2`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 -semi: false - | printWidth -=====================================input====================================== -let error = new Error(response.statusText); -// comment -(error: any).response = response - -x; - -/* comment */ (error: any).response = response - -x; - -(error: any).response = response; /* comment */ - -=====================================output===================================== -let error = new Error(response.statusText) -// comment -;(error: any).response = response - -x - -/* comment */ ;(error: any).response = response - -x - -;(error: any).response = response /* comment */ - -================================================================================ -`; - -exports[`comments.js 3`] = ` -====================================options===================================== -parsers: ["babel"] +parsers: ["babel", "flow"] printWidth: 80 semi: false | printWidth @@ -191,93 +156,7 @@ interface E { exports[`flow-interfaces.js 2`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 -semi: false - | printWidth -=====================================input====================================== -declare class A { - one: boolean; - two: { three: string } - | number; -} - -// NOTE: Flow and Babel both fail to apply ASI here -// declare class B { -// one: boolean -// two: { three: string } -// | number -// } - -declare interface C { - one: boolean; - two: { three: string } - | number; -} - -// NOTE: Flow and Babel both fail to apply ASI here -// declare interface D { -// one: boolean -// two: { three: string } -// | number -// } - -interface E { - one: boolean; - two: { three: string } - | number; -} - -// NOTE: Flow and Babel both fail to apply ASI here -// interface F { -// one: boolean -// two: { three: string } -// | number -// } - -=====================================output===================================== -declare class A { - one: boolean; - two: { three: string } | number; -} - -// NOTE: Flow and Babel both fail to apply ASI here -// declare class B { -// one: boolean -// two: { three: string } -// | number -// } - -declare interface C { - one: boolean; - two: { three: string } | number; -} - -// NOTE: Flow and Babel both fail to apply ASI here -// declare interface D { -// one: boolean -// two: { three: string } -// | number -// } - -interface E { - one: boolean; - two: { three: string } | number; -} - -// NOTE: Flow and Babel both fail to apply ASI here -// interface F { -// one: boolean -// two: { three: string } -// | number -// } - -================================================================================ -`; - -exports[`flow-interfaces.js 3`] = ` -====================================options===================================== -parsers: ["babel"] +parsers: ["babel", "flow"] printWidth: 80 semi: false | printWidth @@ -391,36 +270,7 @@ var c = a.e; exports[`issue2006.js 2`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 -semi: false - | printWidth -=====================================input====================================== -switch (n) { - case 11: - var c = a.e; - (i.a += Ga(c.e)), F(i, c.i, 0); -} - -var c = a.e; -(i.a += Ga(c.e)), F(i, c.i, 0); - -=====================================output===================================== -switch (n) { - case 11: - var c = a.e - ;(i.a += Ga(c.e)), F(i, c.i, 0) -} - -var c = a.e -;(i.a += Ga(c.e)), F(i, c.i, 0) - -================================================================================ -`; - -exports[`issue2006.js 3`] = ` -====================================options===================================== -parsers: ["babel"] +parsers: ["babel", "flow"] printWidth: 80 semi: false | printWidth @@ -799,358 +649,7 @@ aReallyLongLine012345678901234567890123456789012345678901234567890123456789 * exports[`no-semi.js 2`] = ` ====================================options===================================== -parsers: ["flow"] -printWidth: 80 -semi: false - | printWidth -=====================================input====================================== - -// with preexisting semi - -x; [1, 2, 3].forEach(fn) -x; [a, b, ...c] = [1, 2] -x; /r/i.test('r') -x; +1 -x; - 1 -x; ('h' + 'i').repeat(10) -x; (1, 2) -x; (() => {})() -x; ({ a: 1 }).entries() -x; ({ a: 1 }).entries() -x; -x; \`string\` -x; (x, y) => x - -// doesn't have to be preceded by a semicolon - -class X {} [1, 2, 3].forEach(fn) - -// TODO: upgrade parser -// class A { -// async; // The semicolon is *not* necessary -// x(){} -// } -// class B { -// static; // The semicolon *is* necessary -// x(){} -// } - -class C1 { - get; // The semicolon *is* necessary - x(){} -} -class C2 { - get = () => {}; // The semicolon is *not* necessary - x(){} -} -class C3 { - set; // The semicolon *is* necessary - x(){} -} -class C4 { - set = () => {}; // The semicolon is *not* necessary - x(){} -} - - -// don't semicolon if it doesn't start statement - -if (true) (() => {})() - -class A { - a = 0; - [b](){} - - c = 0; - *d(){} - - e = 0; - [f] = 0 - - // none of the semicolons above this comment can be omitted. - // none of the semicolons below this comment are necessary. - - q() {}; - [h](){} - - p() {}; - *i(){} - - a = 1; - get ['y']() {} - - a = 1; - static ['y']() {} - - a = 1; - set ['z'](z) {} - - a = 1; - async ['a']() {} - - a = 1; - async *g() {} - - a = 0; - b = 1; -} - -// being first/last shouldn't break things -class G1 { - x = 1 -} -class G2 { - x() {} -} -class G3 { - *x() {} -} -class G4 { - [x] = 1 -} - -// check indentation - -if (true) { - x; (() => {})() -} - -// flow - -(x: void); -(y: void) - -// check statement clauses - -do break; while (false) -if (true) do break; while (false) - -if (true) 1; else 2 -for (;;) ; -for (x of y) ; - -debugger - -// check that it doesn't break non-ASI - -1 -- 1 - -1 -+ 1 - -1 -/ 1 - -arr -[0] - -fn -(x) - -!1 - -1 -< 1 - -tag -\`string\` - -x; x => x - -x; (a || b).c++ - -x; ++(a || b).c - -while (false) - (function(){}()) - -aReallyLongLine012345678901234567890123456789012345678901234567890123456789 * - (b + c) - -=====================================output===================================== -// with preexisting semi - -x -;[1, 2, 3].forEach(fn) -x -;[a, b, ...c] = [1, 2] -x -;/r/i.test("r") -x -;+1 -x -;-1 -x -;("h" + "i").repeat(10) -x -1, 2 -x -;(() => {})() -x -;({ a: 1 }.entries()) -x -;({ a: 1 }.entries()) -x -; -x -;\`string\` -x -;(x, y) => x - -// doesn't have to be preceded by a semicolon - -class X {} -;[1, 2, 3].forEach(fn) - -// TODO: upgrade parser -// class A { -// async; // The semicolon is *not* necessary -// x(){} -// } -// class B { -// static; // The semicolon *is* necessary -// x(){} -// } - -class C1 { - get; // The semicolon *is* necessary - x() {} -} -class C2 { - get = () => {} // The semicolon is *not* necessary - x() {} -} -class C3 { - set; // The semicolon *is* necessary - x() {} -} -class C4 { - set = () => {} // The semicolon is *not* necessary - x() {} -} - -// don't semicolon if it doesn't start statement - -if (true) (() => {})() - -class A { - a = 0; - [b]() {} - - c = 0; - *d() {} - - e = 0; - [f] = 0 - - // none of the semicolons above this comment can be omitted. - // none of the semicolons below this comment are necessary. - - q() {} - [h]() {} - - p() {} - *i() {} - - a = 1 - get ["y"]() {} - - a = 1 - static ["y"]() {} - - a = 1 - set ["z"](z) {} - - a = 1 - async ["a"]() {} - - a = 1 - async *g() {} - - a = 0 - b = 1 -} - -// being first/last shouldn't break things -class G1 { - x = 1 -} -class G2 { - x() {} -} -class G3 { - *x() {} -} -class G4 { - [x] = 1 -} - -// check indentation - -if (true) { - x - ;(() => {})() -} - -// flow - -;(x: void) -;(y: void) - -// check statement clauses - -do break -while (false) -if (true) - do break - while (false) - -if (true) 1 -else 2 -for (;;); -for (x of y); - -debugger - -// check that it doesn't break non-ASI - -1 - 1 - -1 + 1 - -1 / 1 - -arr[0] - -fn(x) - -!1 - -1 < 1 - -tag\`string\` - -x -x => x - -x -;(a || b).c++ - -x -++(a || b).c - -while (false) (function() {})() - -aReallyLongLine012345678901234567890123456789012345678901234567890123456789 * - (b + c) - -================================================================================ -`; - -exports[`no-semi.js 3`] = ` -====================================options===================================== -parsers: ["babel"] +parsers: ["babel", "flow"] printWidth: 80 semi: false | printWidth diff --git a/tests/no-semi/jsfmt.spec.js b/tests/no-semi/jsfmt.spec.js index 4adcd58f..83f146c8 100644 --- a/tests/no-semi/jsfmt.spec.js +++ b/tests/no-semi/jsfmt.spec.js @@ -1,3 +1,2 @@ run_spec(__dirname, ["flow"]); -run_spec(__dirname, ["flow"], { semi: false }); -run_spec(__dirname, ["babel"], { semi: false }); +run_spec(__dirname, ["babel", "flow"], { semi: false });