diff --git a/packages/babel-helper-transform-fixture-test-runner/src/index.js b/packages/babel-helper-transform-fixture-test-runner/src/index.js index d5d3b6b847..5e8138631b 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.js +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.js @@ -343,10 +343,10 @@ function run(task) { newOpts.presets, optionsDir, ).map(function(val) { - if (val.length > 2) { + if (val.length > 3) { throw new Error( "Unexpected extra options " + - JSON.stringify(val.slice(2)) + + JSON.stringify(val.slice(3)) + " passed to preset.", ); } diff --git a/packages/babel-preset-typescript/package.json b/packages/babel-preset-typescript/package.json index bd284546a0..46c635ca29 100644 --- a/packages/babel-preset-typescript/package.json +++ b/packages/babel-preset-typescript/package.json @@ -17,6 +17,7 @@ "@babel/core": "7.0.0-beta.47" }, "devDependencies": { - "@babel/core": "7.0.0-beta.47" + "@babel/core": "7.0.0-beta.47", + "@babel/helper-plugin-test-runner": "7.0.0-beta.47" } } diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/input.js b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/input.js new file mode 100644 index 0000000000..7db07799f3 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/input.js @@ -0,0 +1,5 @@ +enum Example { + Value +} + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json new file mode 100644 index 0000000000..d0b66c6872 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-invalid/options.json @@ -0,0 +1,8 @@ +{ + "presets": [ + ["flow", {}, "before"], + "typescript", + ["flow", {}, "after"] + ], + "throws": "enum is a reserved word (1:0)" +} diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/js-valid/input.js b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-valid/input.js new file mode 100644 index 0000000000..8e28c22cd0 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-valid/input.js @@ -0,0 +1,3 @@ +type Foo = {||}; + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/js-valid/output.js b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-valid/output.js new file mode 100644 index 0000000000..e901f01b48 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/js-valid/output.js @@ -0,0 +1 @@ +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json new file mode 100644 index 0000000000..751ac537f6 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/options.json @@ -0,0 +1,7 @@ +{ + "presets": [ + ["flow", {}, "before"], + "typescript", + ["flow", {}, "after"] + ] +} diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/input.ts b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/input.ts new file mode 100644 index 0000000000..8e28c22cd0 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/input.ts @@ -0,0 +1,3 @@ +type Foo = {||}; + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json new file mode 100644 index 0000000000..8d8c5f54b6 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-invalid/options.json @@ -0,0 +1,8 @@ +{ + "presets": [ + ["flow", {}, "before"], + "typescript", + ["flow", {}, "after"] + ], + "throws": "Unexpected token (1:12)" +} diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-valid/input.ts b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-valid/input.ts new file mode 100644 index 0000000000..7db07799f3 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-valid/input.ts @@ -0,0 +1,5 @@ +enum Example { + Value +} + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-valid/output.js b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-valid/output.js new file mode 100644 index 0000000000..6f9ecaf0a4 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/ts-valid/output.js @@ -0,0 +1,7 @@ +var Example; + +(function (Example) { + Example[Example["Value"] = 0] = "Value"; +})(Example || (Example = {})); + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/input.tsx b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/input.tsx new file mode 100644 index 0000000000..8e28c22cd0 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/input.tsx @@ -0,0 +1,3 @@ +type Foo = {||}; + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json new file mode 100644 index 0000000000..8d8c5f54b6 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-invalid/options.json @@ -0,0 +1,8 @@ +{ + "presets": [ + ["flow", {}, "before"], + "typescript", + ["flow", {}, "after"] + ], + "throws": "Unexpected token (1:12)" +} diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-valid/input.tsx b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-valid/input.tsx new file mode 100644 index 0000000000..7db07799f3 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-valid/input.tsx @@ -0,0 +1,5 @@ +enum Example { + Value +} + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-valid/output.js b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-valid/output.js new file mode 100644 index 0000000000..6f9ecaf0a4 --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/flow-compat/tsx-valid/output.js @@ -0,0 +1,7 @@ +var Example; + +(function (Example) { + Example[Example["Value"] = 0] = "Value"; +})(Example || (Example = {})); + +foo; diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/js-valid/input.js b/packages/babel-preset-typescript/test/fixtures/jsx-compat/js-valid/input.js new file mode 100644 index 0000000000..131f36bb7b --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/js-valid/input.js @@ -0,0 +1 @@ +(
); diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/js-valid/output.js b/packages/babel-preset-typescript/test/fixtures/jsx-compat/js-valid/output.js new file mode 100644 index 0000000000..3cd05d5f9f --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/js-valid/output.js @@ -0,0 +1 @@ +React.createElement("div", null); diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json b/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json new file mode 100644 index 0000000000..936cecb47c --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/options.json @@ -0,0 +1,7 @@ +{ + "presets": [ + ["react", {}, "before"], + "typescript", + ["react", {}, "after"] + ] +} diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/input.ts b/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/input.ts new file mode 100644 index 0000000000..131f36bb7b --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/input.ts @@ -0,0 +1 @@ +(
); diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json b/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json new file mode 100644 index 0000000000..c157cc517b --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/ts-invalid/options.json @@ -0,0 +1,8 @@ +{ + "presets": [ + ["react", {}, "before"], + "typescript", + ["react", {}, "after"] + ], + "throws": "Unexpected token, expected \"\" (1:6)" +} diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/tsx-valid/input.tsx b/packages/babel-preset-typescript/test/fixtures/jsx-compat/tsx-valid/input.tsx new file mode 100644 index 0000000000..131f36bb7b --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/tsx-valid/input.tsx @@ -0,0 +1 @@ +(
); diff --git a/packages/babel-preset-typescript/test/fixtures/jsx-compat/tsx-valid/output.js b/packages/babel-preset-typescript/test/fixtures/jsx-compat/tsx-valid/output.js new file mode 100644 index 0000000000..3cd05d5f9f --- /dev/null +++ b/packages/babel-preset-typescript/test/fixtures/jsx-compat/tsx-valid/output.js @@ -0,0 +1 @@ +React.createElement("div", null); diff --git a/packages/babel-preset-typescript/test/index.js b/packages/babel-preset-typescript/test/index.js new file mode 100644 index 0000000000..1b534b8fc6 --- /dev/null +++ b/packages/babel-preset-typescript/test/index.js @@ -0,0 +1,3 @@ +import runner from "@babel/helper-plugin-test-runner"; + +runner(__dirname);