Ver código fonte

Merge pull request #1002 from vidartf/sourcemap-test

Sourcemap test
Steven Silvester 8 anos atrás
pai
commit
7620c732a3

+ 2 - 2
jupyterlab/__init__.py

@@ -21,8 +21,8 @@ If you're working on the TypeScript sources of JupyterLab, try running
 
     npm run watch
 
-from the JupyterLab repo directory in another terminal window to have the 
-system incrementally watch and build JupyterLab's TypeScript for you, as you 
+from the JupyterLab repo directory in another terminal window to have the
+system incrementally watch and build JupyterLab's TypeScript for you, as you
 make changes.
 """
 

+ 5 - 2
package.json

@@ -33,6 +33,7 @@
     "@types/mocha": "^2.2.32",
     "@types/requirejs": "^2.1.28",
     "@types/sanitize-html": "^1.13.31",
+    "awesome-typescript-loader": "^2.2.4",
     "concurrently": "^2.0.0",
     "css-loader": "^0.23.1",
     "expect.js": "^0.3.1",
@@ -47,6 +48,8 @@
     "karma-ie-launcher": "^0.2.0",
     "karma-mocha": "^0.2.1",
     "karma-mocha-reporter": "^1.1.5",
+    "karma-remap-coverage": "^0.1.1",
+    "karma-sourcemap-loader": "^0.3.7",
     "mocha": "^2.3.4",
     "raw-loader": "^0.5.1",
     "rimraf": "^2.5.0",
@@ -62,7 +65,7 @@
     "build:all": "npm run build:src && npm run build:serverextension",
     "build:examples": "node scripts/buildexamples.js",
     "build:src": "tsc --project src && node scripts/copyfiles.js",
-    "build:test": "tsc --project test/src && webpack --config test/webpack.conf.js",
+    "build:test": "webpack --config test/webpack.conf.js",
     "build:serverextension": "cd jupyterlab && npm run build && cd ..",
     "clean": "rimraf docs && rimraf lib && rimraf test/build && rimraf test/coverage",
     "clean:all": "npm run clean && cd jupyterlab && npm run clean && cd ..",
@@ -73,7 +76,7 @@
     "prepublish": "npm run build",
     "test": "npm run test:firefox",
     "test:chrome": "npm run build:test && karma start --browsers=Chrome test/karma.conf.js",
-    "test:coverage": "npm run build:test && webpack --config test/webpack-cov.conf.js && karma start test/karma-cov.conf.js",
+    "test:coverage": "webpack --config test/webpack-cov.conf.js && karma start test/karma-cov.conf.js",
     "test:debug": "npm run build:test && karma start --browsers=Chrome --singleRun=false --debug=true test/karma.conf.js",
     "test:firefox": "npm run build:test && karma start --browsers=Firefox test/karma.conf.js",
     "test:ie": "npm run build:test && karma start --browsers=IE test/karma.conf.js",

+ 2 - 1
src/tsconfig.json

@@ -7,6 +7,7 @@
     "module": "commonjs",
     "moduleResolution": "node",
     "target": "ES5",
-    "outDir": "../lib"
+    "outDir": "../lib",
+    "sourceMap": true
   }
 }

+ 10 - 6
test/karma-cov.conf.js

@@ -5,17 +5,21 @@ module.exports = function (config) {
     basePath: '..',
     browsers: ['Firefox'],
     frameworks: ['mocha'],
-    reporters: ['mocha', 'coverage'],
+    reporters: ['mocha', 'coverage', 'remap-coverage'],
     files: [
       'node_modules/es6-promise/dist/es6-promise.js',
       'test/build/coverage.js'
     ],
+    preprocessors: {
+      'test/build/coverage.js': ['sourcemap']
+    },
     coverageReporter: {
-      reporters : [
-        { 'type': 'text' },
-        { 'type': 'lcov', dir: 'test/coverage' },
-        { 'type': 'html', dir: 'test/coverage' }
-      ]
+      type: 'in-memory'
+    },
+    remapCoverageReporter: {
+      'text-summary': null, // to show summary in console
+      json: 'test/coverage/remapped.json',
+      html: 'test/coverage/html'
     },
     port: 9876,
     colors: true,

+ 3 - 0
test/karma.conf.js

@@ -7,6 +7,9 @@ module.exports = function (config) {
       'node_modules/es6-promise/dist/es6-promise.js',
       'test/build/bundle.js'
     ],
+    preprocessors: {
+      'test/build/bundle.js': ['sourcemap']
+    },
     port: 9876,
     colors: true,
     singleRun: true,

+ 0 - 10
test/src/notebook/tsconfig.json

@@ -1,10 +0,0 @@
-{
-  "compilerOptions": {
-    "noImplicitAny": true,
-    "noEmitOnError": true,
-    "module": "commonjs",
-    "moduleResolution": "node",
-    "target": "ES5",
-    "outDir": "../build"
-  }
-}

+ 0 - 5
test/src/notebook/typings.d.ts

@@ -1,5 +0,0 @@
-/// <reference path="../../../typings/codemirror/codemirror.d.ts"/>
-/// <reference path="../../../typings/expect.js/expect.js.d.ts"/>
-/// <reference path="../../../typings/mocha/mocha.d.ts"/>
-/// <reference path="../../../typings/es6-promise/es6-promise.d.ts"/>
-/// <reference path="../../../typings/require/require.d.ts"/>

+ 3 - 3
test/src/tsconfig.json

@@ -6,7 +6,7 @@
     "module": "commonjs",
     "moduleResolution": "node",
     "target": "ES5",
-    "outDir": "../build"
-  },
-  "exclude": ["notebook"]
+    "outDir": "../build",
+    "sourceMap": true
+  }
 }

+ 4 - 0
test/src/typings.d.ts

@@ -1,4 +1,8 @@
 /// <reference path="../../typings/codemirror/codemirror.d.ts"/>
+/// <reference types="expect.js" />
+/// <reference types="typescript" />
+/// <reference types="mocha" />
+/// <reference types="requirejs" />
 
 // For a Thenable reference in jupyter-js-services
 type Thenable<T> = Promise<T>

+ 17 - 5
test/webpack-cov.conf.js

@@ -1,20 +1,28 @@
 var path = require('path');
 
 module.exports = {
-  entry: './test/build/index.js',
+  entry: './test/src/index.ts',
   output: {
     path: __dirname + "/build",
     filename: "coverage.js",
-    publicPath: "./build/"
+    devtoolModuleFilenameTemplate: '[resource-path]'
   },
   bail: true,
+  devtool: 'source-map',
   module: {
     loaders: [
-      { test: /\.json$/, loader: 'json-loader' },
-      { test: /\.ipynb$/, loader: 'json-loader' },
       { test: /\.css$/, loader: 'style-loader!css-loader' },
       { test: /\.md$/, loader: 'raw-loader'},
-      { test: /\.html$/, loader: "file?name=[name].[ext]" }
+      { test: /\.html$/, loader: 'file-loader?name=[name].[ext]' },
+      { test: /\.ipynb$/, loader: 'json-loader' },
+      { test: /\.json$/, loader: 'json-loader' },
+      {
+        test: /\.ts$/,
+        loader: 'awesome-typescript-loader',
+        query: {
+          tsconfig: './test/src/tsconfig.json'
+        }
+      }
     ],
     preLoaders: [
       // instrument only testing sources with Istanbul
@@ -24,5 +32,9 @@ module.exports = {
         loader: 'istanbul-instrumenter'
       }
     ]
+  },
+  resolve: {
+    // Add '.ts' as resolvable extensions.
+    extensions: ['', '.webpack.js', '.web.js', '.js', '.ts']
   }
 }

+ 16 - 5
test/webpack.conf.js

@@ -1,20 +1,31 @@
 var path = require('path');
 
 module.exports = {
-  entry: './test/build/index.js',
+  entry: './test/src/index.ts',
   output: {
     path: __dirname + "/build",
     filename: "bundle.js",
-    publicPath: "./build/"
+    publicPath: "./test/build/"
   },
-  bail: true,
+  devtool: 'inline-source-map',
   module: {
     loaders: [
       { test: /\.css$/, loader: 'style-loader!css-loader' },
       { test: /\.md$/, loader: 'raw-loader'},
-      { test: /\.html$/, loader: "file?name=[name].[ext]" },
+      { test: /\.html$/, loader: 'file-loader?name=[name].[ext]' },
       { test: /\.ipynb$/, loader: 'json-loader' },
-      { test: /\.json$/, loader: 'json-loader' }
+      { test: /\.json$/, loader: 'json-loader' },
+      {
+        test: /\.ts$/,
+        loader: 'awesome-typescript-loader',
+        query: {
+          tsconfig: './test/src/tsconfig.json'
+        }
+      }
     ]
+  },
+  resolve: {
+    // Add '.ts' as resolvable extensions.
+    extensions: ['', '.webpack.js', '.web.js', '.js', '.ts']
   }
 }