Skip to content

Commit 60ed068

Browse files
committed
move tests around to facilitate registering babel based on environment
1 parent 23b0f75 commit 60ed068

File tree

580 files changed

+620
-53
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

580 files changed

+620
-53
lines changed

mocha.coverage.opts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
--require reify
33
--recursive
44
./**/__test__.js
5-
test/*.js
5+
test/*/index.js

mocha.opts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
--require reify
2-
--recursive
3-
./**/__test__.js
4-
test/*.js
1+
test/test.js

package.json

+16-2
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,25 @@
4444
},
4545
"devDependencies": {
4646
"acorn": "^4.0.4",
47+
"babel": "^6.23.0",
48+
"babel-core": "^6.23.1",
4749
"babel-plugin-istanbul": "^3.0.0",
48-
"babel-plugin-transform-es2015-modules-commonjs": "^6.18.0",
49-
"babel-register": "^6.18.0",
50+
"babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
51+
"babel-plugin-transform-es2015-block-scoping": "^6.23.0",
52+
"babel-plugin-transform-es2015-destructuring": "^6.23.0",
53+
"babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
54+
"babel-plugin-transform-es2015-parameters": "^6.23.0",
55+
"babel-plugin-transform-es2015-spread": "^6.22.0",
56+
"babel-preset-env": "^1.2.1",
57+
"babel-register": "^6.23.0",
5058
"codecov": "^1.0.1",
5159
"console-group": "^0.3.2",
5260
"css-tree": "^1.0.0-alpha16",
5361
"eslint": "^3.12.2",
5462
"eslint-plugin-import": "^2.2.0",
5563
"estree-walker": "^0.3.0",
5664
"fuzzyset.js": "0.0.1",
65+
"glob": "^7.1.1",
5766
"jsdom": "^9.9.1",
5867
"locate-character": "^2.0.0",
5968
"mocha": "^3.2.0",
@@ -78,6 +87,11 @@
7887
},
7988
"babel": {
8089
"plugins": [
90+
"transform-es2015-arrow-functions",
91+
"transform-es2015-block-scoping",
92+
"transform-es2015-spread",
93+
"transform-es2015-parameters",
94+
"transform-es2015-destructuring",
8195
"transform-es2015-modules-commonjs"
8296
]
8397
}

test/formats.js test/formats/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import deindent from '../src/utils/deindent.js';
1+
import deindent from '../../src/utils/deindent.js';
22
import assert from 'assert';
3-
import { svelte, env, setupHtmlEqual } from './helpers.js';
3+
import { svelte, env, setupHtmlEqual } from '../helpers.js';
44

55
function testAmd ( code, expectedId, dependencies, html ) {
66
const fn = new Function( 'define', code );

test/generate.js test/generator/index.js

+15-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import spaces from '../src/utils/spaces.js';
1+
import spaces from '../../src/utils/spaces.js';
22
import assert from 'assert';
33
import * as path from 'path';
44
import * as fs from 'fs';
55
import * as acorn from 'acorn';
6+
import * as babel from 'babel-core';
67

7-
import { addLineNumbers, loadConfig, svelte, env, setupHtmlEqual } from './helpers.js';
8+
import { addLineNumbers, loadConfig, svelte, env, setupHtmlEqual } from '../helpers.js';
89

910
let showCompiledCode = false;
1011
let compileOptions = null;
@@ -14,12 +15,18 @@ function getName ( filename ) {
1415
return base[0].toUpperCase() + base.slice( 1 );
1516
}
1617

18+
const nodeVersionMatch = /^v(\d)/.exec( process.version );
19+
const legacy = +nodeVersionMatch[1] < 6;
20+
const babelrc = require( '../../package.json' ).babel;
21+
1722
require.extensions[ '.html' ] = function ( module, filename ) {
1823
const options = Object.assign({ filename, name: getName( filename ) }, compileOptions );
19-
const { code } = svelte.compile( fs.readFileSync( filename, 'utf-8' ), options );
24+
let { code } = svelte.compile( fs.readFileSync( filename, 'utf-8' ), options );
2025

2126
if ( showCompiledCode ) console.log( addLineNumbers( code ) ); // eslint-disable-line no-console
2227

28+
if ( legacy ) code = babel.transform( code, babelrc ).code;
29+
2330
return module._compile( code, filename );
2431
};
2532

@@ -29,7 +36,7 @@ describe( 'generate', () => {
2936
function runTest ( dir, shared ) {
3037
if ( dir[0] === '.' ) return;
3138

32-
const config = loadConfig( `./generator/${dir}/_config.js` );
39+
const config = loadConfig( `./generator/samples/${dir}/_config.js` );
3340

3441
if ( config.solo && process.env.CI ) {
3542
throw new Error( 'Forgot to remove `solo: true` from test' );
@@ -44,7 +51,7 @@ describe( 'generate', () => {
4451
compileOptions.dev = config.dev;
4552

4653
try {
47-
const source = fs.readFileSync( `test/generator/${dir}/main.html`, 'utf-8' );
54+
const source = fs.readFileSync( `test/generator/samples/${dir}/main.html`, 'utf-8' );
4855
compiled = svelte.compile( source, compileOptions );
4956
} catch ( err ) {
5057
if ( config.compileError ) {
@@ -76,7 +83,7 @@ describe( 'generate', () => {
7683
let SvelteComponent;
7784

7885
try {
79-
SvelteComponent = require( `./generator/${dir}/main.html` ).default;
86+
SvelteComponent = require( `./samples/${dir}/main.html` ).default;
8087
} catch ( err ) {
8188
if ( !config.show ) console.log( addLineNumbers( code ) ); // eslint-disable-line no-console
8289
throw err;
@@ -126,13 +133,13 @@ describe( 'generate', () => {
126133
}
127134

128135
describe( 'inline helpers', () => {
129-
fs.readdirSync( 'test/generator' ).forEach( dir => {
136+
fs.readdirSync( 'test/generator/samples' ).forEach( dir => {
130137
runTest( dir, null );
131138
});
132139
});
133140

134141
describe( 'shared helpers', () => {
135-
fs.readdirSync( 'test/generator' ).forEach( dir => {
142+
fs.readdirSync( 'test/generator/samples' ).forEach( dir => {
136143
runTest( dir, path.resolve( 'shared.js' ) );
137144
});
138145
});
File renamed without changes.
File renamed without changes.

test/generator/computed-values-default/_config.js test/generator/samples/computed-values-default/_config.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
export default {
22
html: '<p>2</p>',
33

4+
'skip-ssr': /^v4/.test( process.version ), // we're not transpiling server-side tests in Node 4, because it's tricky
5+
46
test ( assert, component, target ) {
57
component.set({ a: 2 });
68
assert.equal( target.innerHTML, '<p>4</p>' );
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

test/parse.js test/parser/index.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
import assert from 'assert';
22
import * as fs from 'fs';
3-
import { svelte, exists } from './helpers.js';
3+
import { svelte, exists } from '../helpers.js';
44

55
describe( 'parse', () => {
6-
fs.readdirSync( 'test/parser' ).forEach( dir => {
6+
fs.readdirSync( 'test/parser/samples' ).forEach( dir => {
77
if ( dir[0] === '.' ) return;
88

9-
const solo = exists( `test/parser/${dir}/solo` );
9+
const solo = exists( `test/parser/samples/${dir}/solo` );
1010

1111
if ( solo && process.env.CI ) {
1212
throw new Error( 'Forgot to remove `solo: true` from test' );
1313
}
1414

1515
( solo ? it.only : it )( dir, () => {
16-
const input = fs.readFileSync( `test/parser/${dir}/input.html`, 'utf-8' ).replace( /\s+$/, '' );
16+
const input = fs.readFileSync( `test/parser/samples/${dir}/input.html`, 'utf-8' ).replace( /\s+$/, '' );
1717

1818
try {
1919
const actual = svelte.parse( input );
20-
fs.writeFileSync( `test/parser/${dir}/_actual.json`, JSON.stringify( actual, null, '\t' ) );
21-
const expected = require( `./parser/${dir}/output.json` );
20+
fs.writeFileSync( `test/parser/samples/${dir}/_actual.json`, JSON.stringify( actual, null, '\t' ) );
21+
const expected = require( `./samples/${dir}/output.json` );
2222

2323
assert.deepEqual( actual.html, expected.html );
2424
assert.deepEqual( actual.css, expected.css );
@@ -27,7 +27,7 @@ describe( 'parse', () => {
2727
if ( err.name !== 'ParseError' ) throw err;
2828

2929
try {
30-
const expected = require( `./parser/${dir}/error.json` );
30+
const expected = require( `./samples/${dir}/error.json` );
3131

3232
assert.equal( err.message, expected.message );
3333
assert.deepEqual( err.loc, expected.loc );

0 commit comments

Comments
 (0)