diff --git a/.gitignore b/.gitignore index 84afbbe..219851d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Logs logs *.log +.nyc +.nyc_output # Runtime data pids @@ -55,4 +57,4 @@ __build__/** # Build Artifacts # release .ngc -*.ngfactory.ts \ No newline at end of file +*.ngfactory.ts diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000..2a4f9fa --- /dev/null +++ b/circle.yml @@ -0,0 +1,6 @@ +machine: + node: + version: 6.9.5 +test: + override: + - npm run build diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index 1fd20e9..0000000 --- a/karma.conf.js +++ /dev/null @@ -1,84 +0,0 @@ -var path = require('path'); -var webpack = require('webpack'); - -module.exports = function(karma) { - 'use strict'; - - karma.set({ - basePath: __dirname, - - frameworks: ['jasmine'], - - files: [ - { pattern: 'tests.bundle.ts', watched: false } - ], - - exclude: [], - - preprocessors: { - 'tests.bundle.ts': ['coverage', 'webpack', 'sourcemap'] - }, - - reporters: ['mocha', 'coverage'], - - coverageReporter: { - dir: 'coverage/', - reporters: [ - { type: 'text-summary' }, - { type: 'json' }, - { type: 'html' } - ] - }, - - browsers: ['Chrome'], - - port: 9018, - runnerPort: 9101, - colors: true, - logLevel: karma.LOG_INFO, - autoWatch: true, - singleRun: false, - webpackServer: { noInfo: true }, - webpack: { - devtool: 'inline-source-map', - resolve: { - extensions: ['.ts', '.js'] - }, - module: { - rules: [ - { - test: /\.ts$/, - loader: 'tslint-loader', - enforce: 'pre', - exclude: [ - /node_modules/ - ] - }, - { - test: /\.ts?$/, - exclude: /(node_modules)/, - loader: 'ts' - }, - { - test: /\.(js|ts)$/, loader: 'istanbul-instrumenter', - include: path.resolve(__dirname, 'src'), - enforce: 'post', - exclude: [ - /\.(e2e|spec|bundle)\.ts$/, - /node_modules/ - ] - } - ] - }, - plugins: [ - new webpack.LoaderOptionsPlugin({ - tslint: { - emitErrors: false, - failOnHint: false, - resourcePath: 'src' - } - }) - ] - } - }); -}; diff --git a/package.json b/package.json index 93c7841..1f13106 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ }, "scripts": { "karma": "karma start --single-run", - "test": "npm run karma", + "test": "nyc node tests.js", + "test:raw": "node tests.js", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", "clean:pre": "rimraf release", "clean:post": "rimraf src/**/*.ngfactory.ts", @@ -33,14 +34,14 @@ ], "license": "MIT", "peerDependencies": { - "rxjs": "^5.0.0-beta.12", "@angular/core": "^2.0.0", - "@ngrx/store": "^1.5.0 || ^2.0.0" + "@ngrx/store": "^1.5.0 || ^2.0.0", + "rxjs": "^5.0.0-beta.12" }, "devDependencies": { "@angular/common": "^2.0.0", "@angular/compiler": "^2.0.0", - "@angular/compiler-cli": "^0.6.1", + "@angular/compiler-cli": "^2.0.0", "@angular/core": "^2.0.0", "@angular/platform-browser": "^2.0.0", "@angular/platform-browser-dynamic": "^2.0.0", @@ -55,26 +56,31 @@ "core-js": "^2.2.2", "cpy-cli": "^1.0.1", "istanbul-instrumenter-loader": "^0.2.0", - "jasmine-core": "^2.5.0", - "karma": "^0.13.22", - "karma-chrome-launcher": "^0.2.3", - "karma-coverage": "^0.5.5", - "karma-jasmine": "^0.3.8", - "karma-mocha-reporter": "^2.0.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-typescript-preprocessor": "0.0.21", - "karma-webpack": "^1.7.0", + "jasmine": "^2.5.2", "npm-run-all": "^1.7.0", + "nyc": "^8.3.2", "reflect-metadata": "^0.1.3", + "rimraf": "^2.6.1", "rollup": "^0.34.13", "rxjs": "^5.0.0-beta.12", "source-map-loader": "^0.1.5", "ts-loader": "^0.8.2", + "ts-node": "^1.6.0", "tslint": "^3.15.1", "tslint-loader": "^2.1.5", "typescript": "^2.0.2", "uglifyjs": "^2.4.10", - "webpack": "^2.1.0-beta.21", - "zone.js": "^0.6.17" + "zone.js": "^0.7.2" + }, + "nyc": { + "extension": [ + ".ts" + ], + "exclude": [ + "spec/**/*.spec" + ], + "include": [ + "src/**/*.ts" + ] } } diff --git a/tests.bundle.ts b/tests.bundle.ts deleted file mode 100644 index 7331c23..0000000 --- a/tests.bundle.ts +++ /dev/null @@ -1,38 +0,0 @@ -import 'core-js'; -import 'core-js/es7/reflect'; - -import 'zone.js/dist/zone'; -import 'zone.js/dist/proxy'; -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; - - - -// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. -declare var __karma__: any; -declare var System: any; - -// Prevent Karma from running prematurely. -__karma__.loaded = function () {}; - - -Promise.all([ - System.import('@angular/core/testing'), - System.import('@angular/platform-browser-dynamic/testing') -]) -// First, initialize the Angular testing environment. -.then(([testing, testingBrowser]) => { - testing.getTestBed().initTestEnvironment( - testingBrowser.BrowserDynamicTestingModule, - testingBrowser.platformBrowserDynamicTesting() - ); -}) -// Then we find all the tests. -.then(() => (require).context('./spec', true, /\.spec\.ts/)) -// And load the modules. -.then(context => context.keys().map(context)) -// Finally, start Karma to run the tests. -.then(__karma__.start, __karma__.error); diff --git a/tests.js b/tests.js new file mode 100644 index 0000000..6c57213 --- /dev/null +++ b/tests.js @@ -0,0 +1,28 @@ +require('ts-node/register'); +require('core-js/es7/reflect'); +require('zone.js/dist/zone-node.js'); +require('zone.js/dist/long-stack-trace-zone.js'); +require('zone.js/dist/proxy.js'); +require('zone.js/dist/sync-test.js'); +require('zone.js/dist/async-test.js'); +require('zone.js/dist/fake-async-test.js'); +const Jasmine = require('jasmine'); + +const runner = new Jasmine(); + +global.jasmine = runner.jasmine; + +require('zone.js/dist/jasmine-patch.js'); + +const { getTestBed } = require('@angular/core/testing'); +const { ServerTestingModule, platformServerTesting } = require('@angular/platform-server/testing'); + + +getTestBed().initTestEnvironment(ServerTestingModule, platformServerTesting()); + +runner.loadConfig({ + spec_dir: 'spec', + spec_files: [ '**/*.spec.ts' ] +}); + +runner.execute(); diff --git a/tsconfig.dist.json b/tsconfig.dist.json index 9bbedf0..8928ccd 100644 --- a/tsconfig.dist.json +++ b/tsconfig.dist.json @@ -1,4 +1,3 @@ - { "compilerOptions": { "baseUrl": ".", @@ -21,6 +20,7 @@ "index.ts" ], "angularCompilerOptions": { - "strictMetadataEmit": true + "strictMetadataEmit": true, + "genDir": "./release" } } diff --git a/tsconfig.testing.json b/tsconfig.testing.json index bf70224..ab9785c 100644 --- a/tsconfig.testing.json +++ b/tsconfig.testing.json @@ -23,6 +23,7 @@ "testing/index.ts" ], "angularCompilerOptions": { - "strictMetadataEmit": true + "strictMetadataEmit": true, + "genDir": "./release" } }