diff --git a/docs/en/Multi-Tenancy.md b/docs/en/Multi-Tenancy.md
index 0ad3c66b26..c69e2cb299 100644
--- a/docs/en/Multi-Tenancy.md
+++ b/docs/en/Multi-Tenancy.md
@@ -307,6 +307,11 @@ Volo.Abp.AspNetCore.MultiTenancy package adds following tenant resolvers to dete
* **HeaderTenantResolver**: Tries to find current tenant id from HTTP header. Header name is "__tenant" by default.
* **CookieTenantResolver**: Tries to find current tenant id from cookie values. Cookie name is "__tenant" by default.
+> If you use nginx as a reverse proxy server, please note that if `TenantKey` contains an underscore or other special characters, there may be a problem, please refer to:
+http://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers
+http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
+
+
"__tenant" parameter name can be changed using AspNetCoreMultiTenancyOptions. Example:
````C#
diff --git a/docs/zh-Hans/Multi-Tenancy.md b/docs/zh-Hans/Multi-Tenancy.md
index 352190d5cd..f42fd73454 100644
--- a/docs/zh-Hans/Multi-Tenancy.md
+++ b/docs/zh-Hans/Multi-Tenancy.md
@@ -308,6 +308,10 @@ Volo.Abp.AspNetCore.MultiTenancy 添加了下面这些租户解析器,从当前W
* **HeaderTenantResolver**: 尝试从HTTP header中获取当前租户,默认的header名称是"__tenant".
* **CookieTenantResolver**: 尝试从当前cookie中获取当前租户.默认的Cookie名称是"__tenant".
+> 如果你使用nginx作为反向代理服务器,请注意如果`TenantKey`包含下划线或其他特殊字符可能存在问题, 请参考:
+http://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers
+http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers
+
可以使用AspNetCoreMultiTenancyOptions修改默认的参数名"__tenant".例如:
````C#
diff --git a/framework/src/Volo.Abp.Autofac/Microsoft/Extensions/Hosting/AbpAutofacHostBuilderExtensions.cs b/framework/src/Volo.Abp.Autofac/Microsoft/Extensions/Hosting/AbpAutofacHostBuilderExtensions.cs
new file mode 100644
index 0000000000..65b008ecf4
--- /dev/null
+++ b/framework/src/Volo.Abp.Autofac/Microsoft/Extensions/Hosting/AbpAutofacHostBuilderExtensions.cs
@@ -0,0 +1,20 @@
+using Autofac;
+using Volo.Abp.Autofac;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Microsoft.Extensions.Hosting
+{
+ public static class AbpAutofacHostBuilderExtensions
+ {
+ public static IHostBuilder UseAutofac(this IHostBuilder hostBuilder)
+ {
+ var containerBuilder = new ContainerBuilder();
+
+ return hostBuilder.ConfigureServices((_, services) =>
+ {
+ services.AddObjectAccessor(containerBuilder);
+ })
+ .UseServiceProviderFactory(new AbpAutofacServiceProviderFactory(containerBuilder));
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj
index bc7c696c3d..fdb7318e30 100644
--- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj
+++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj
@@ -16,6 +16,7 @@
+
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Configuration/IConfigurationAccessor.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Configuration/IConfigurationAccessor.cs
index c8ae448be2..34e5d96692 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/Configuration/IConfigurationAccessor.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/Configuration/IConfigurationAccessor.cs
@@ -1,7 +1,9 @@
-using Microsoft.Extensions.Configuration;
+using System;
+using Microsoft.Extensions.Configuration;
namespace Volo.Abp.Configuration
{
+ [Obsolete("IConfigurationAccessor will be removed in v1.0. Use IConfiguration instead (be use that you are using generic host just like the startup templates).")]
public interface IConfigurationAccessor
{
IConfigurationRoot Configuration { get; }
diff --git a/npm/ng-packs/angular.json b/npm/ng-packs/angular.json
index a06c34c90e..f1c7d18a46 100644
--- a/npm/ng-packs/angular.json
+++ b/npm/ng-packs/angular.json
@@ -17,11 +17,9 @@
}
},
"test": {
- "builder": "@angular-devkit/build-angular:karma",
+ "builder": "@angular-builders/jest:run",
"options": {
- "main": "packages/core/src/test.ts",
- "tsConfig": "packages/core/tsconfig.spec.json",
- "karmaConfig": "packages/core/karma.conf.js"
+ "coverage": true
}
},
"lint": {
@@ -48,11 +46,9 @@
}
},
"test": {
- "builder": "@angular-devkit/build-angular:karma",
+ "builder": "@angular-builders/jest:run",
"options": {
- "main": "packages/theme-shared/src/test.ts",
- "tsConfig": "packages/theme-shared/tsconfig.spec.json",
- "karmaConfig": "packages/theme-shared/karma.conf.js"
+ "coverage": true
}
},
"lint": {
@@ -532,25 +528,9 @@
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
- "tsConfig": [
- "apps/dev-app/tsconfig.app.json",
- "apps/dev-app/tsconfig.spec.json",
- "apps/dev-app/e2e/tsconfig.json"
- ],
+ "tsConfig": ["apps/dev-app/tsconfig.app.json", "apps/dev-app/tsconfig.spec.json"],
"exclude": ["**/node_modules/**"]
}
- },
- "e2e": {
- "builder": "@angular-devkit/build-angular:protractor",
- "options": {
- "protractorConfig": "apps/dev-app/e2e/protractor.conf.js",
- "devServerTarget": "dev-app:serve"
- },
- "configurations": {
- "production": {
- "devServerTarget": "dev-app:serve:production"
- }
- }
}
}
}
diff --git a/npm/ng-packs/apps/dev-app/e2e/protractor.conf.js b/npm/ng-packs/apps/dev-app/e2e/protractor.conf.js
deleted file mode 100644
index 5c23d8477d..0000000000
--- a/npm/ng-packs/apps/dev-app/e2e/protractor.conf.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// @ts-check
-// Protractor configuration file, see link for more information
-// https://github.com/angular/protractor/blob/master/lib/config.ts
-
-const { SpecReporter } = require('jasmine-spec-reporter');
-
-/**
- * @type { import("protractor").Config }
- */
-exports.config = {
- allScriptsTimeout: 11000,
- specs: ['./src/**/*.e2e-spec.ts'],
- capabilities: {
- browserName: 'chrome',
- },
- directConnect: true,
- baseUrl: 'http://localhost:4200/',
- framework: 'jasmine',
- jasmineNodeOpts: {
- showColors: true,
- defaultTimeoutInterval: 30000,
- print: function() {},
- },
- onPrepare() {
- require('ts-node').register({
- project: require('path').join(__dirname, './tsconfig.json'),
- });
- jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
- },
-};
diff --git a/npm/ng-packs/apps/dev-app/e2e/src/app.e2e-spec.ts b/npm/ng-packs/apps/dev-app/e2e/src/app.e2e-spec.ts
deleted file mode 100644
index 96edba0042..0000000000
--- a/npm/ng-packs/apps/dev-app/e2e/src/app.e2e-spec.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { AppPage } from './app.po';
-import { browser, logging } from 'protractor';
-
-describe('workspace-project App', () => {
- let page: AppPage;
-
- beforeEach(() => {
- page = new AppPage();
- });
-
- it('should display welcome message', () => {
- page.navigateTo();
- expect(page.getTitleText()).toEqual('dev-app app is running!');
- });
-
- afterEach(async () => {
- // Assert that there are no errors emitted from the browser
- const logs = await browser
- .manage()
- .logs()
- .get(logging.Type.BROWSER);
- expect(logs).not.toContain(
- jasmine.objectContaining({
- level: logging.Level.SEVERE,
- } as logging.Entry),
- );
- });
-});
diff --git a/npm/ng-packs/apps/dev-app/e2e/src/app.po.ts b/npm/ng-packs/apps/dev-app/e2e/src/app.po.ts
deleted file mode 100644
index b8498c26f2..0000000000
--- a/npm/ng-packs/apps/dev-app/e2e/src/app.po.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { browser, by, element } from 'protractor';
-
-export class AppPage {
- navigateTo() {
- return browser.get(browser.baseUrl) as Promise;
- }
-
- getTitleText() {
- return element(by.css('app-root .content span')).getText() as Promise;
- }
-}
diff --git a/npm/ng-packs/apps/dev-app/e2e/tsconfig.json b/npm/ng-packs/apps/dev-app/e2e/tsconfig.json
deleted file mode 100644
index 201351434e..0000000000
--- a/npm/ng-packs/apps/dev-app/e2e/tsconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "extends": "../../../tsconfig.json",
- "compilerOptions": {
- "outDir": "../../../out-tsc/e2e",
- "module": "commonjs",
- "target": "es5",
- "types": ["jasmine", "jasminewd2", "node"]
- }
-}
diff --git a/npm/ng-packs/apps/dev-app/karma.conf.js b/npm/ng-packs/apps/dev-app/karma.conf.js
deleted file mode 100644
index 54492af159..0000000000
--- a/npm/ng-packs/apps/dev-app/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function(config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma'),
- ],
- client: {
- clearContext: false, // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/dev-app'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true,
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true,
- });
-};
diff --git a/npm/ng-packs/apps/dev-app/src/test.ts b/npm/ng-packs/apps/dev-app/src/test.ts
deleted file mode 100644
index da9049dc63..0000000000
--- a/npm/ng-packs/apps/dev-app/src/test.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/apps/dev-app/tsconfig.spec.json b/npm/ng-packs/apps/dev-app/tsconfig.spec.json
index 8eec07d40a..e487d98612 100644
--- a/npm/ng-packs/apps/dev-app/tsconfig.spec.json
+++ b/npm/ng-packs/apps/dev-app/tsconfig.spec.json
@@ -2,8 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": ["jasmine", "node"]
+ "types": ["node", "jest"]
},
- "files": ["src/test.ts", "src/polyfills.ts"],
+ "files": ["src/polyfills.ts"],
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
}
diff --git a/npm/ng-packs/jest.config.js b/npm/ng-packs/jest.config.js
new file mode 100644
index 0000000000..580ba0bcdf
--- /dev/null
+++ b/npm/ng-packs/jest.config.js
@@ -0,0 +1,19 @@
+module.exports = {
+ globals: {
+ 'ts-jest': {
+ allowSyntheticDefaultImports: true,
+ },
+ },
+ transform: {
+ '^.+\\.(ts|js|html)$': 'ts-jest',
+ },
+ moduleFileExtensions: ['ts', 'js', 'html'],
+ coverageDirectory: '/coverage',
+ coverageReporters: ['html'],
+ preset: 'jest-preset-angular',
+ setupFilesAfterEnv: ['/test-setup.ts'],
+ snapshotSerializers: [
+ 'jest-preset-angular/AngularSnapshotSerializer.js',
+ 'jest-preset-angular/HTMLCommentSerializer.js',
+ ],
+};
diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json
index 5e4a254863..f432ab97d9 100644
--- a/npm/ng-packs/package.json
+++ b/npm/ng-packs/package.json
@@ -2,6 +2,7 @@
"scripts": {
"start": "ng serve dev-app",
"ng": "ng",
+ "test": "ng test",
"symlink": "symlink",
"abpng": "abpng",
"commit": "git-cz && node scripts/push.js",
@@ -14,6 +15,7 @@
"@abp/ng.theme.shared": "^0.9.0",
"@angular-devkit/build-angular": "~0.803.6",
"@angular-devkit/build-ng-packagr": "~0.803.6",
+ "@angular-builders/jest": "^8.2.0",
"@angular/animations": "~8.2.8",
"@angular/cdk": "^8.2.2",
"@angular/cli": "~8.3.6",
@@ -27,14 +29,13 @@
"@angular/platform-browser-dynamic": "~8.2.8",
"@angular/router": "~8.2.8",
"@ng-bootstrap/ng-bootstrap": "^5.1.0",
- "@ngneat/spectator": "^4.3.2",
+ "@ngneat/spectator": "^4.4.0",
"@ngx-validate/core": "^0.0.5",
"@ngxs/devtools-plugin": "^3.5.1",
"@ngxs/router-plugin": "^3.5.1",
"@ngxs/storage-plugin": "^3.5.1",
"@ngxs/store": "^3.5.1",
- "@types/jasmine": "~3.3.8",
- "@types/jasminewd2": "~2.0.3",
+ "@types/jest": "^24.0.18",
"@types/node": "~8.9.4",
"angular-oauth2-oidc": "^8.0.1",
"bootstrap": "^4.3.1",
@@ -43,15 +44,10 @@
"cz-conventional-changelog": "3.0.2",
"font-awesome": "^4.7.0",
"husky": "^3.0.7",
- "jasmine-core": "~3.4.0",
- "jasmine-spec-reporter": "~4.2.1",
+ "jest": "^24.9.0",
+ "jest-preset-angular": "^7.1.1",
"just-clone": "3.1.0",
"just-compare": "^1.3.0",
- "karma": "~4.1.0",
- "karma-chrome-launcher": "~2.2.0",
- "karma-coverage-istanbul-reporter": "~2.0.1",
- "karma-jasmine": "~2.0.1",
- "karma-jasmine-html-reporter": "^1.4.0",
"lint-staged": "^9.4.0",
"ng-packagr": "^5.5.0",
"ngx-perfect-scrollbar": "^8.0.0",
@@ -70,6 +66,7 @@
"zone.js": "~0.9.1"
},
"dependencies": {
+ "@briebug/jest": "^1.3.1",
"tslib": "^1.10.0"
},
"config": {
diff --git a/npm/ng-packs/packages/account-config/karma.conf.js b/npm/ng-packs/packages/account-config/karma.conf.js
deleted file mode 100644
index e74978b4ca..0000000000
--- a/npm/ng-packs/packages/account-config/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/account-config'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/account-config/src/test.ts b/npm/ng-packs/packages/account-config/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/account-config/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/account-config/tsconfig.spec.json b/npm/ng-packs/packages/account-config/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/account-config/tsconfig.spec.json
+++ b/npm/ng-packs/packages/account-config/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/account/karma.conf.js b/npm/ng-packs/packages/account/karma.conf.js
deleted file mode 100644
index ccfa764753..0000000000
--- a/npm/ng-packs/packages/account/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/account'),
- reports: ['html', 'lcovonly'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/account/src/test.ts b/npm/ng-packs/packages/account/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/account/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/account/tsconfig.spec.json b/npm/ng-packs/packages/account/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/account/tsconfig.spec.json
+++ b/npm/ng-packs/packages/account/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/core/jest.config.js b/npm/ng-packs/packages/core/jest.config.js
new file mode 100644
index 0000000000..2e294cf4e6
--- /dev/null
+++ b/npm/ng-packs/packages/core/jest.config.js
@@ -0,0 +1,10 @@
+const { pathsToModuleNameMapper } = require('ts-jest/utils');
+const { compilerOptions } = require('./tsconfig.spec');
+const jestConfig = require('../../jest.config');
+
+module.exports = {
+ ...jestConfig,
+ name: 'core',
+ moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths /*, { prefix: '/' } */),
+ 'ts-jest': { allowSyntheticDefaultImports: true },
+};
diff --git a/npm/ng-packs/packages/core/karma.conf.js b/npm/ng-packs/packages/core/karma.conf.js
deleted file mode 100644
index 46e0cb1d0a..0000000000
--- a/npm/ng-packs/packages/core/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/core'),
- reports: ['html', 'lcovonly'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/core/src/lib/services/rest.service.ts b/npm/ng-packs/packages/core/src/lib/services/rest.service.ts
index 611b208b35..4057a4a29a 100644
--- a/npm/ng-packs/packages/core/src/lib/services/rest.service.ts
+++ b/npm/ng-packs/packages/core/src/lib/services/rest.service.ts
@@ -2,7 +2,7 @@ import { HttpClient, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Store } from '@ngxs/store';
import { Observable, throwError } from 'rxjs';
-import { catchError, take } from 'rxjs/operators';
+import { catchError, take, tap } from 'rxjs/operators';
import { RestOccurError } from '../actions/rest.actions';
import { Rest } from '../models/rest';
import { ConfigState } from '../states/config.state';
@@ -19,12 +19,14 @@ export class RestService {
return throwError(err);
}
- request(request: HttpRequest | Rest.Request, config: Rest.Config = {}, api?: string): Observable {
+ request(request: HttpRequest | Rest.Request, config?: Rest.Config, api?: string): Observable {
+ config = config || ({} as Rest.Config);
const { observe = Rest.Observe.Body, skipHandleError } = config;
- const url = api || this.store.selectSnapshot(ConfigState.getApiUrl()) + request.url;
+ const url = (api || this.store.selectSnapshot(ConfigState.getApiUrl())) + request.url;
const { method, ...options } = request;
+
return this.http.request(method, url, { observe, ...options } as any).pipe(
- observe === Rest.Observe.Body ? take(1) : null,
+ observe === Rest.Observe.Body ? take(1) : tap(),
catchError(err => {
if (skipHandleError) {
return throwError(err);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/config.plugin.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/config.plugin.spec.ts
index 293dd4bf79..da851a5369 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/config.plugin.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/config.plugin.spec.ts
@@ -1,14 +1,14 @@
import { RouterTestingModule } from '@angular/router/testing';
-import { createServiceFactory, SpectatorService } from '@ngneat/spectator';
-import { NGXS_PLUGINS, NgxsModule, InitState, Store } from '@ngxs/store';
+import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
+import { NgxsModule, NGXS_PLUGINS, Store } from '@ngxs/store';
import { environment } from '../../../../../apps/dev-app/src/environments/environment';
import { LAYOUTS } from '../../../../theme-basic/src/public-api';
-import { ABP } from '../models';
-import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from '../plugins';
import { RouterOutletComponent } from '../components';
-import { ConfigState } from '../states';
import { CoreModule } from '../core.module';
import { eLayoutType } from '../enums/common';
+import { ABP } from '../models';
+import { ConfigPlugin, NGXS_CONFIG_PLUGIN_OPTIONS } from '../plugins';
+import { ConfigState } from '../states';
import { addAbpRoutes } from '../utils';
addAbpRoutes([
diff --git a/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts
index bfd2762760..d2ac2c3c50 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/dynamic-layout.component.spec.ts
@@ -1,6 +1,6 @@
import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
-import { createRoutingFactory, SpectatorRouting, SpyObject } from '@ngneat/spectator';
+import { createRoutingFactory, SpectatorRouting, SpyObject } from '@ngneat/spectator/jest';
import { NgxsModule, Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
import { NgxsResetPluginModule, StateOverwrite } from 'ngxs-reset-plugin';
diff --git a/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts
index e82e89d4a0..b5c788635d 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/locale.provider.spec.ts
@@ -1,5 +1,5 @@
import { Component, LOCALE_ID } from '@angular/core';
-import { createRoutingFactory, SpectatorHost, SpectatorRouting } from '@ngneat/spectator';
+import { createRoutingFactory, SpectatorHost, SpectatorRouting } from '@ngneat/spectator/jest';
import { LocalizationService } from '../services';
import { LocaleProvider, LocaleId } from '../providers';
import localesMapping from '../constants/different-locales';
@@ -24,7 +24,7 @@ describe('LocaleProvider', () => {
});
describe('#LOCALE_ID', () => {
- it('should equal to localizationService.currentLang', async () => {
+ test('should equal to currentLang', async () => {
spectator = createComponent();
const localizationService = spectator.get(LocalizationService);
diff --git a/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
index 8c0dbebb40..7f613543d6 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/localization.service.spec.ts
@@ -1,5 +1,5 @@
import { Router } from '@angular/router';
-import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator';
+import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/jest';
import { Store } from '@ngxs/store';
import { Observable, of } from 'rxjs';
import { LocalizationService } from '../services/localization.service';
diff --git a/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts
new file mode 100644
index 0000000000..6a06ec2c12
--- /dev/null
+++ b/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts
@@ -0,0 +1,95 @@
+import { createHttpFactory, HttpMethod, SpectatorHttp, SpyObject } from '@ngneat/spectator/jest';
+import { Store } from '@ngxs/store';
+import { Subscription, timer, interval, throwError, of } from 'rxjs';
+import { mapTo, catchError } from 'rxjs/operators';
+import { RestService } from '../services/rest.service';
+import { Rest } from '../models';
+import { RestOccurError } from '../actions';
+
+describe('HttpClient testing', () => {
+ let spectator: SpectatorHttp;
+ let store: SpyObject;
+ const api = 'https://abp.io';
+
+ const createHttp = createHttpFactory({ dataService: RestService, mocks: [Store] });
+
+ beforeEach(() => {
+ spectator = createHttp();
+ store = spectator.get(Store);
+ store.selectSnapshot.andReturn(api);
+ });
+
+ test('should send a GET request with params', () => {
+ spectator.service.request({ method: HttpMethod.GET, url: '/test', params: { id: 1 } }).subscribe();
+ spectator.expectOne(api + '/test?id=1', HttpMethod.GET);
+ });
+
+ test('should send a POST request with body', () => {
+ spectator.service.request({ method: HttpMethod.POST, url: '/test', body: { id: 1 } }).subscribe();
+ const req = spectator.expectOne(api + '/test', HttpMethod.POST);
+ expect(req.request.body['id']).toEqual(1);
+ });
+
+ test('should use the specific api', () => {
+ spectator.service.request({ method: HttpMethod.GET, url: '/test' }, null, 'http://test.api').subscribe();
+ spectator.expectOne('http://test.api' + '/test', HttpMethod.GET);
+ });
+
+ test('should close the subscriber when observe equal to body', done => {
+ jest.spyOn(spectator.httpClient, 'request').mockReturnValue(interval(50));
+
+ const subscriber: Subscription = spectator.service
+ .request({ method: HttpMethod.GET, url: '/test' }, { observe: Rest.Observe.Body })
+ .subscribe();
+
+ timer(51).subscribe(() => {
+ expect(subscriber.closed).toBe(true);
+ done();
+ });
+ });
+
+ test('should open the subscriber when observe not equal to body', done => {
+ jest.spyOn(spectator.httpClient, 'request').mockReturnValue(interval(50));
+
+ const subscriber: Subscription = spectator.service
+ .request({ method: HttpMethod.GET, url: '/test' }, { observe: Rest.Observe.Events })
+ .subscribe();
+
+ timer(51).subscribe(() => {
+ expect(subscriber.closed).toBe(false);
+ done();
+ });
+ });
+
+ test('should handle the error', () => {
+ jest.spyOn(spectator.httpClient, 'request').mockReturnValue(throwError('An error'));
+ const spy = jest.spyOn(store, 'dispatch');
+
+ spectator.service
+ .request({ method: HttpMethod.GET, url: '/test' }, { observe: Rest.Observe.Events })
+ .pipe(
+ catchError(err => {
+ expect(err).toBeTruthy();
+ expect(spy.mock.calls[0][0] instanceof RestOccurError).toBe(true);
+ return of(null);
+ }),
+ )
+ .subscribe();
+ });
+
+ test('should not handle the error when skipHandleError is true', () => {
+ jest.spyOn(spectator.httpClient, 'request').mockReturnValue(throwError('An error'));
+ const spy = jest.spyOn(store, 'dispatch');
+
+ spectator.service
+ .request({ method: HttpMethod.GET, url: '/test' }, { observe: Rest.Observe.Events, skipHandleError: true })
+ .pipe(
+ catchError(err => {
+ expect(err).toBeTruthy();
+ expect(spy.mock.calls).toHaveLength(0);
+ return of(null);
+ }),
+ )
+ .subscribe();
+ });
+});
diff --git a/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts
index 6707432c03..b7e79b9c08 100644
--- a/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts
+++ b/npm/ng-packs/packages/core/src/lib/tests/router-outlet.component.spec.ts
@@ -1,4 +1,4 @@
-import { Spectator, createComponentFactory, createHostFactory } from '@ngneat/spectator';
+import { Spectator, createComponentFactory, createHostFactory } from '@ngneat/spectator/jest';
import { RouterTestingModule } from '@angular/router/testing';
import { RouterOutletComponent } from '../components/router-outlet.component';
@@ -8,7 +8,6 @@ describe('RouterOutletComponent', () => {
it('should have a router-outlet element', () => {
spectator = createHost('');
- console.log((spectator.debugElement.nativeElement as HTMLElement).children);
expect((spectator.debugElement.nativeElement as HTMLElement).children.length).toBe(1);
expect((spectator.debugElement.nativeElement as HTMLElement).children[0].tagName).toBe('ROUTER-OUTLET');
});
diff --git a/npm/ng-packs/packages/core/src/test.ts b/npm/ng-packs/packages/core/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/core/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/core/tsconfig.spec.json b/npm/ng-packs/packages/core/tsconfig.spec.json
index b86d4b4cce..d2fb1e6cb3 100644
--- a/npm/ng-packs/packages/core/tsconfig.spec.json
+++ b/npm/ng-packs/packages/core/tsconfig.spec.json
@@ -1,13 +1,14 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "outDir": "../../out-tsc/spec",
- "types": ["jasmine", "node"],
+ "emitDecoratorMetadata": true,
+ "esModuleInterop": true,
+ "outDir": "../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"],
"paths": {
- "@abp/ng.core": ["packages/core/src/public-api.ts"],
"@abp/ng.core/*": ["packages/core/src/lib/*"]
}
},
- "files": ["src/test.ts"],
"include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/feature-management/karma.conf.js b/npm/ng-packs/packages/feature-management/karma.conf.js
deleted file mode 100644
index 65f905a52e..0000000000
--- a/npm/ng-packs/packages/feature-management/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/feature-management'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/feature-management/src/test.ts b/npm/ng-packs/packages/feature-management/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/feature-management/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/feature-management/tsconfig.spec.json b/npm/ng-packs/packages/feature-management/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/feature-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/feature-management/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/identity-config/karma.conf.js b/npm/ng-packs/packages/identity-config/karma.conf.js
deleted file mode 100644
index 47f6e498d2..0000000000
--- a/npm/ng-packs/packages/identity-config/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/identity-config'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/identity-config/src/test.ts b/npm/ng-packs/packages/identity-config/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/identity-config/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/identity-config/tsconfig.spec.json b/npm/ng-packs/packages/identity-config/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/identity-config/tsconfig.spec.json
+++ b/npm/ng-packs/packages/identity-config/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/identity/karma.conf.js b/npm/ng-packs/packages/identity/karma.conf.js
deleted file mode 100644
index 96fe6c9293..0000000000
--- a/npm/ng-packs/packages/identity/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/identity'),
- reports: ['html', 'lcovonly'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/identity/src/test.ts b/npm/ng-packs/packages/identity/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/identity/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/identity/tsconfig.spec.json b/npm/ng-packs/packages/identity/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/identity/tsconfig.spec.json
+++ b/npm/ng-packs/packages/identity/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/permission-management/karma.conf.js b/npm/ng-packs/packages/permission-management/karma.conf.js
deleted file mode 100644
index 9bbd5907ef..0000000000
--- a/npm/ng-packs/packages/permission-management/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/permission-management'),
- reports: ['html', 'lcovonly'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/permission-management/src/test.ts b/npm/ng-packs/packages/permission-management/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/permission-management/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/permission-management/tsconfig.spec.json b/npm/ng-packs/packages/permission-management/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/permission-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/permission-management/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/setting-management-config/karma.conf.js b/npm/ng-packs/packages/setting-management-config/karma.conf.js
deleted file mode 100644
index 7ff4863cb0..0000000000
--- a/npm/ng-packs/packages/setting-management-config/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/setting-management-config'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/setting-management-config/src/test.ts b/npm/ng-packs/packages/setting-management-config/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/setting-management-config/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/setting-management-config/tsconfig.spec.json b/npm/ng-packs/packages/setting-management-config/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/setting-management-config/tsconfig.spec.json
+++ b/npm/ng-packs/packages/setting-management-config/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/setting-management/karma.conf.js b/npm/ng-packs/packages/setting-management/karma.conf.js
deleted file mode 100644
index 51ccc0578d..0000000000
--- a/npm/ng-packs/packages/setting-management/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/setting-management'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/setting-management/src/test.ts b/npm/ng-packs/packages/setting-management/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/setting-management/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/setting-management/tsconfig.spec.json b/npm/ng-packs/packages/setting-management/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/setting-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/setting-management/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/tenant-management-config/karma.conf.js b/npm/ng-packs/packages/tenant-management-config/karma.conf.js
deleted file mode 100644
index 850929cc06..0000000000
--- a/npm/ng-packs/packages/tenant-management-config/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/tenant-management-config'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/tenant-management-config/src/test.ts b/npm/ng-packs/packages/tenant-management-config/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/tenant-management-config/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/tenant-management-config/tsconfig.spec.json b/npm/ng-packs/packages/tenant-management-config/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/tenant-management-config/tsconfig.spec.json
+++ b/npm/ng-packs/packages/tenant-management-config/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/tenant-management/karma.conf.js b/npm/ng-packs/packages/tenant-management/karma.conf.js
deleted file mode 100644
index eb6cfa24b4..0000000000
--- a/npm/ng-packs/packages/tenant-management/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/tenant-management'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/tenant-management/src/test.ts b/npm/ng-packs/packages/tenant-management/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/tenant-management/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/tenant-management/tsconfig.spec.json b/npm/ng-packs/packages/tenant-management/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/tenant-management/tsconfig.spec.json
+++ b/npm/ng-packs/packages/tenant-management/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/theme-basic/karma.conf.js b/npm/ng-packs/packages/theme-basic/karma.conf.js
deleted file mode 100644
index e04be0a193..0000000000
--- a/npm/ng-packs/packages/theme-basic/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/theme-basic'),
- reports: ['html', 'lcovonly'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/npm/ng-packs/packages/theme-basic/src/test.ts b/npm/ng-packs/packages/theme-basic/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/theme-basic/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/theme-basic/tsconfig.spec.json b/npm/ng-packs/packages/theme-basic/tsconfig.spec.json
index 16da33db07..ebce9b9fdb 100644
--- a/npm/ng-packs/packages/theme-basic/tsconfig.spec.json
+++ b/npm/ng-packs/packages/theme-basic/tsconfig.spec.json
@@ -2,16 +2,8 @@
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "types": ["node", "jest"]
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "files": [],
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/packages/theme-shared/jest.config.js b/npm/ng-packs/packages/theme-shared/jest.config.js
new file mode 100644
index 0000000000..718fcfe21b
--- /dev/null
+++ b/npm/ng-packs/packages/theme-shared/jest.config.js
@@ -0,0 +1,10 @@
+const { pathsToModuleNameMapper } = require('ts-jest/utils');
+const { compilerOptions } = require('./tsconfig.spec');
+const jestConfig = require('../../jest.config');
+
+module.exports = {
+ ...jestConfig,
+ name: 'theme-shared',
+ moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths /*, { prefix: '/' } */),
+ 'ts-jest': { allowSyntheticDefaultImports: true },
+};
diff --git a/npm/ng-packs/packages/theme-shared/karma.conf.js b/npm/ng-packs/packages/theme-shared/karma.conf.js
deleted file mode 100644
index 5703b124a6..0000000000
--- a/npm/ng-packs/packages/theme-shared/karma.conf.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function(config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma'),
- ],
- client: {
- clearContext: false, // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../../coverage/theme-shared'),
- reports: ['html', 'lcovonly'],
- fixWebpackSourcePaths: true,
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true,
- });
-};
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts
index 67526e271f..59d49e68c4 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/button.component.spec.ts
@@ -1,4 +1,4 @@
-import { createHostFactory, SpectatorHost } from '@ngneat/spectator';
+import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest';
import { ButtonComponent } from '../components';
describe('ButtonComponent', () => {
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts
index f64b7d73e2..764197f1e3 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts
@@ -2,7 +2,7 @@ import { CoreModule, RestOccurError, RouterOutletComponent } from '@abp/ng.core'
import { Location } from '@angular/common';
import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { Component } from '@angular/core';
-import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator';
+import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest';
import { NgxsModule, Store } from '@ngxs/store';
import { DEFAULT_ERROR_MESSAGES, ErrorHandler } from '../handlers';
import { ThemeSharedModule } from '../theme-shared.module';
@@ -35,7 +35,9 @@ describe('ErrorHandler', () => {
store.dispatch(new RestOccurError(new HttpErrorResponse({ status: 500 })));
spectator.detectChanges();
expect(document.querySelector('.error-template')).toHaveText(DEFAULT_ERROR_MESSAGES.defaultError500.title);
- expect(document.querySelector('.error-details')).toHaveText(DEFAULT_ERROR_MESSAGES.defaultError500.details);
+ expect(document.querySelector('.error-details')).toHaveText(
+ DEFAULT_ERROR_MESSAGES.defaultError500.details.defaultValue,
+ );
});
it('should display the error component when authorize error occurs', () => {
@@ -49,7 +51,9 @@ describe('ErrorHandler', () => {
store.dispatch(new RestOccurError(new HttpErrorResponse({ status: 0, statusText: 'Unknown Error' })));
spectator.detectChanges();
expect(document.querySelector('.error-template')).toHaveText(DEFAULT_ERROR_MESSAGES.defaultErrorUnknown.title);
- expect(document.querySelector('.error-details')).toHaveText(DEFAULT_ERROR_MESSAGES.defaultErrorUnknown.details);
+ expect(document.querySelector('.error-details')).toHaveText(
+ DEFAULT_ERROR_MESSAGES.defaultErrorUnknown.details.defaultValue,
+ );
});
it('should display the confirmation when not found error occurs', () => {
diff --git a/npm/ng-packs/packages/theme-shared/src/test.ts b/npm/ng-packs/packages/theme-shared/src/test.ts
deleted file mode 100644
index 978c64fb83..0000000000
--- a/npm/ng-packs/packages/theme-shared/src/test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone';
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/npm/ng-packs/packages/theme-shared/tsconfig.spec.json b/npm/ng-packs/packages/theme-shared/tsconfig.spec.json
index 16da33db07..f87ea306f2 100644
--- a/npm/ng-packs/packages/theme-shared/tsconfig.spec.json
+++ b/npm/ng-packs/packages/theme-shared/tsconfig.spec.json
@@ -1,17 +1,14 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "outDir": "../../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
+ "emitDecoratorMetadata": true,
+ "esModuleInterop": true,
+ "outDir": "../../dist/out-tsc",
+ "module": "commonjs",
+ "types": ["jest", "node"],
+ "paths": {
+ "@abp/ng.theme-shared/*": ["packages/theme-shared/src/lib/*"]
+ }
},
- "files": [
- "src/test.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
+ "include": ["**/*.spec.ts", "**/*.d.ts"]
}
diff --git a/npm/ng-packs/test-setup.ts b/npm/ng-packs/test-setup.ts
new file mode 100644
index 0000000000..8d88704e8f
--- /dev/null
+++ b/npm/ng-packs/test-setup.ts
@@ -0,0 +1 @@
+import 'jest-preset-angular';
diff --git a/npm/ng-packs/tsconfig.json b/npm/ng-packs/tsconfig.json
index 9c996dd271..ac9e9e8eea 100644
--- a/npm/ng-packs/tsconfig.json
+++ b/npm/ng-packs/tsconfig.json
@@ -13,7 +13,7 @@
"target": "es2015",
"typeRoots": ["node_modules/@types"],
"lib": ["es2018", "dom"],
- "paths": {}
+ "types": ["jest"]
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
index a6e9f78048..a0d90bf695 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
index c4a5b7a007..b9a7094c54 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
@@ -1,6 +1,6 @@
using System;
-using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +24,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting MyCompanyName.MyProjectName.HttpApi.Host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +38,13 @@ namespace MyCompanyName.MyProjectName
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs
index 896211a175..644425b274 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs
@@ -1,22 +1,15 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj
index c8f15b6820..3a566c6563 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Program.cs
index c4a5b7a007..b9a7094c54 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Program.cs
@@ -1,6 +1,6 @@
using System;
-using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +24,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting MyCompanyName.MyProjectName.HttpApi.Host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +38,13 @@ namespace MyCompanyName.MyProjectName
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Startup.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Startup.cs
index 896211a175..644425b274 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Startup.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Startup.cs
@@ -1,22 +1,15 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj
index bdd8139f79..6ccc50b140 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj
@@ -31,7 +31,7 @@
-
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs
index 31b888e68d..3264de7167 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs
@@ -1,6 +1,6 @@
using System;
-using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +24,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting MyCompanyName.MyProjectName.IdentityServer.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +38,13 @@ namespace MyCompanyName.MyProjectName
}
}
- internal static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Startup.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Startup.cs
index dd8727554f..7fd62325bd 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Startup.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Startup.cs
@@ -1,20 +1,13 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app)
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
index ca8202b42a..d8f91dfd0d 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs
index 0fdbda7bf9..5143e37164 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Program.cs
@@ -1,6 +1,6 @@
using System;
-using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +24,7 @@ namespace MyCompanyName.MyProjectName.Web
try
{
Log.Information("Starting web host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +38,13 @@ namespace MyCompanyName.MyProjectName.Web
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Startup.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Startup.cs
index db5c45e654..9428c74114 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Startup.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Startup.cs
@@ -1,21 +1,14 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName.Web
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj
index 9bfeded944..8c65e90c25 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj
@@ -31,7 +31,7 @@
-
+
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
index c41aa762d8..25a59a3d07 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
@@ -1,5 +1,7 @@
-using System.IO;
+using System;
+using System.IO;
using Localization.Resources.AbpUi;
+using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
@@ -22,6 +24,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.Autofac;
using Volo.Abp.AutoMapper;
+using Volo.Abp.Configuration;
using Volo.Abp.FeatureManagement;
using Volo.Abp.Identity.Web;
using Volo.Abp.Localization;
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Program.cs
index 47b0ced597..5143e37164 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Program.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Program.cs
@@ -1,6 +1,6 @@
using System;
-using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -16,7 +16,7 @@ namespace MyCompanyName.MyProjectName.Web
#else
.MinimumLevel.Information()
#endif
- .MinimumLevel.Override("Microsoft", LogEventLevel.Debug)
+ .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt"))
.CreateLogger();
@@ -24,7 +24,7 @@ namespace MyCompanyName.MyProjectName.Web
try
{
Log.Information("Starting web host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +38,13 @@ namespace MyCompanyName.MyProjectName.Web
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Startup.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Startup.cs
index db5c45e654..9428c74114 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Startup.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/Startup.cs
@@ -1,21 +1,14 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName.Web
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
index efcb7e857a..6a2ee611da 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
index 639e485a38..31537b2398 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Program.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +25,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting web host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +39,13 @@ namespace MyCompanyName.MyProjectName
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs
index 19fe569013..dc9807e4a0 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/Startup.cs
@@ -3,20 +3,14 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj
index 5586141e5a..f0431dce74 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs
index 639e485a38..31537b2398 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +25,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting web host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +39,13 @@ namespace MyCompanyName.MyProjectName
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Startup.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Startup.cs
index ff2a868a60..5efb1ca00d 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Startup.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Startup.cs
@@ -3,20 +3,14 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
index f98264ed74..4a6578146d 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Program.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Program.cs
index 639e485a38..31537b2398 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Program.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Program.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -24,7 +25,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting web host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -38,14 +39,13 @@ namespace MyCompanyName.MyProjectName
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Startup.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Startup.cs
index be06102769..1c5ffbe462 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Startup.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/Startup.cs
@@ -1,21 +1,14 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj
index acf0fcb8c3..3c597f160c 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs
index 004c00d3c1..ccfc845eaf 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyProjectNameWebUnifiedModule.cs
@@ -1,6 +1,5 @@
using System.IO;
using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using MyCompanyName.MyProjectName.EntityFrameworkCore;
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Program.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Program.cs
index c1e595c693..e196a31cb4 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Program.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Program.cs
@@ -1,6 +1,7 @@
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@@ -20,7 +21,7 @@ namespace MyCompanyName.MyProjectName
try
{
Log.Information("Starting web host.");
- BuildWebHostInternal(args).Run();
+ CreateHostBuilder(args).Build().Run();
return 0;
}
catch (Exception ex)
@@ -34,14 +35,13 @@ namespace MyCompanyName.MyProjectName
}
}
- public static IWebHost BuildWebHostInternal(string[] args) =>
- new WebHostBuilder()
- .UseKestrel()
- .UseContentRoot(Directory.GetCurrentDirectory())
- .UseIIS()
- .UseIISIntegration()
- .UseStartup()
- .UseSerilog()
- .Build();
+ internal static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStartup();
+ })
+ .UseAutofac()
+ .UseSerilog();
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Startup.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Startup.cs
index 0dbb22e4e6..e052534eb7 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Startup.cs
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/Startup.cs
@@ -1,22 +1,15 @@
-using System;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
-using Volo.Abp;
namespace MyCompanyName.MyProjectName
{
public class Startup
{
- public IServiceProvider ConfigureServices(IServiceCollection services)
+ public void ConfigureServices(IServiceCollection services)
{
- services.AddApplication(options =>
- {
- options.UseAutofac();
- });
-
- return services.BuildServiceProviderFromFactory();
+ services.AddApplication();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)