diff --git a/templates/app/angular/src/app/home/home.component.spec.ts b/templates/app/angular/src/app/home/home.component.spec.ts
index 2243bfca92..4efbb17f0d 100644
--- a/templates/app/angular/src/app/home/home.component.spec.ts
+++ b/templates/app/angular/src/app/home/home.component.spec.ts
@@ -1,98 +1,88 @@
import { CoreTestingModule } from "@abp/ng.core/testing";
import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/testing";
-import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing";
+import { ComponentFixture, TestBed } from "@angular/core/testing";
import { NgxValidateCoreModule } from "@ngx-validate/core";
import { HomeComponent } from "./home.component";
-import { OAuthService } from 'angular-oauth2-oidc';
import { AuthService } from '@abp/ng.core';
+import { vi } from 'vitest';
describe("HomeComponent", () => {
let fixture: ComponentFixture;
- const mockOAuthService = jasmine.createSpyObj('OAuthService', ['hasValidAccessToken'])
- const mockAuthService = jasmine.createSpyObj('AuthService', ['navigateToLogin'])
- beforeEach(
- waitForAsync(() => {
- TestBed.configureTestingModule({
- declarations: [],
- imports: [
- CoreTestingModule.withConfig(),
- ThemeSharedTestingModule.withConfig(),
- NgxValidateCoreModule,
- HomeComponent
- ],
- providers: [
- /* mock providers here */
- {
- provide: OAuthService,
- useValue: mockOAuthService
- },
- {
- provide: AuthService,
- useValue: mockAuthService
- }
- ],
- }).compileComponents();
- })
- );
-
- beforeEach(() => {
- fixture = TestBed.createComponent(HomeComponent);
- fixture.detectChanges();
+ let mockAuthService: { isAuthenticated: boolean; navigateToLogin: ReturnType };
+
+ beforeEach(async () => {
+ mockAuthService = {
+ isAuthenticated: false,
+ navigateToLogin: vi.fn()
+ };
+
+ await TestBed.configureTestingModule({
+ imports: [
+ CoreTestingModule.withConfig(),
+ ThemeSharedTestingModule.withConfig(),
+ NgxValidateCoreModule,
+ HomeComponent
+ ],
+ providers: [
+ {
+ provide: AuthService,
+ useValue: mockAuthService
+ }
+ ],
+ }).compileComponents();
});
it("should be initiated", () => {
+ fixture = TestBed.createComponent(HomeComponent);
+ fixture.detectChanges();
expect(fixture.componentInstance).toBeTruthy();
});
-
-
describe('when login state is true', () => {
- beforeAll(() => {
- mockOAuthService.hasValidAccessToken.and.returnValue(true)
+ beforeEach(() => {
+ mockAuthService.isAuthenticated = true;
+ fixture = TestBed.createComponent(HomeComponent);
+ fixture.detectChanges();
});
it("hasLoggedIn should be true", () => {
-
- expect(fixture.componentInstance.hasLoggedIn).toBeTrue();
- expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled()
- })
+ expect(fixture.componentInstance.hasLoggedIn).toBe(true);
+ });
it("button should not be exists", () => {
- const element = fixture.nativeElement
- const button = element.querySelector('[role="button"]')
- expect(button).toBeNull()
- })
-
- })
+ const element = fixture.nativeElement;
+ const button = element.querySelector('[role="button"]');
+ expect(button).toBeNull();
+ });
+ });
describe('when login state is false', () => {
- beforeAll(() => {
- mockOAuthService.hasValidAccessToken.and.returnValue(false)
+ beforeEach(() => {
+ mockAuthService.isAuthenticated = false;
+ fixture = TestBed.createComponent(HomeComponent);
+ fixture.detectChanges();
});
it("hasLoggedIn should be false", () => {
-
- expect(fixture.componentInstance.hasLoggedIn).toBeFalse();
- expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled()
- })
+ expect(fixture.componentInstance.hasLoggedIn).toBe(false);
+ });
it("button should be exists", () => {
- const element = fixture.nativeElement
- const button = element.querySelector('[role="button"]')
- expect(button).toBeDefined()
- })
- describe('when button clicked', () => {
+ const element = fixture.nativeElement;
+ const button = element.querySelector('[role="button"]');
+ expect(button).toBeDefined();
+ });
+ describe('when button clicked', () => {
beforeEach(() => {
- const element = fixture.nativeElement
- const button = element.querySelector('[role="button"]')
- button.click()
+ const element = fixture.nativeElement;
+ const button = element.querySelector('[role="button"]');
+ button.click();
});
it("navigateToLogin have been called", () => {
- expect(mockAuthService.navigateToLogin).toHaveBeenCalled()
- })
- })
- })
-
+ expect(mockAuthService.navigateToLogin).toHaveBeenCalled();
+ });
+ });
+ });
});
diff --git a/templates/app/angular/src/test.ts b/templates/app/angular/src/test.ts
deleted file mode 100644
index 3b701bbfa0..0000000000
--- a/templates/app/angular/src/test.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-import 'zone.js/testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting,
-} from '@angular/platform-browser-dynamic/testing';
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
diff --git a/templates/app/angular/tsconfig.app.json b/templates/app/angular/tsconfig.app.json
index 82d91dc4a4..264f459bf8 100644
--- a/templates/app/angular/tsconfig.app.json
+++ b/templates/app/angular/tsconfig.app.json
@@ -1,15 +1,15 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": []
},
- "files": [
- "src/main.ts",
- "src/polyfills.ts"
- ],
"include": [
- "src/**/*.d.ts"
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "src/**/*.spec.ts"
]
}
diff --git a/templates/app/angular/tsconfig.spec.json b/templates/app/angular/tsconfig.spec.json
index 092345b02e..d38370633f 100644
--- a/templates/app/angular/tsconfig.spec.json
+++ b/templates/app/angular/tsconfig.spec.json
@@ -1,18 +1,15 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
- "jasmine"
+ "vitest/globals"
]
},
- "files": [
- "src/test.ts",
- "src/polyfills.ts"
- ],
"include": [
- "src/**/*.spec.ts",
- "src/**/*.d.ts"
+ "src/**/*.d.ts",
+ "src/**/*.spec.ts"
]
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json
index 9b9bb0d347..1dfdde8988 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json
@@ -3,6 +3,6 @@
"name": "my-app-authserver",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json
index d9fafc7b9c..d02d9cbfcf 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json
index d9fafc7b9c..d02d9cbfcf 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json
index d9fafc7b9c..d02d9cbfcf 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp.Tiered/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json
index d9fafc7b9c..d02d9cbfcf 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebApp/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3",
- "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0",
+ "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json
index d6a7caffd4..082139a2d1 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json
index d6a7caffd4..082139a2d1 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0"
}
}
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json
index d6a7caffd4..082139a2d1 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.1.0"
}
}
diff --git a/templates/module/angular/angular.json b/templates/module/angular/angular.json
index 8c1b576257..62b319d275 100644
--- a/templates/module/angular/angular.json
+++ b/templates/module/angular/angular.json
@@ -28,12 +28,7 @@
"defaultConfiguration": "production"
},
"test": {
- "builder": "@angular/build:karma",
- "options": {
- "main": "projects/my-project-name/src/test.ts",
- "tsConfig": "projects/my-project-name/tsconfig.spec.json",
- "karmaConfig": "projects/my-project-name/karma.conf.js"
- }
+ "builder": "@angular/build:unit-test"
},
"lint": {
"builder": "@angular-eslint/builder:lint",
@@ -157,25 +152,7 @@
}
},
"test": {
- "builder": "@angular/build:karma",
- "options": {
- "browser": "projects/dev-app/src/test.ts",
- "polyfills": ["projects/dev-app/src/polyfills.ts"],
- "tsConfig": "projects/dev-app/tsconfig.spec.json",
- "karmaConfig": "projects/dev-app/karma.conf.js",
- "inlineStyleLanguage": "scss",
- "assets": ["projects/dev-app/src/favicon.ico", "projects/dev-app/src/assets"],
- "styles": [
- "node_modules/bootstrap/dist/css/bootstrap.min.css",
- "node_modules/@fortawesome/fontawesome-free/css/all.min.css",
- "node_modules/@fortawesome/fontawesome-free/css/v4-shims.min.css",
- "node_modules/@swimlane/ngx-datatable/index.css",
- "node_modules/@swimlane/ngx-datatable/assets/icons.css",
- "node_modules/@swimlane/ngx-datatable/themes/material.css",
- "projects/dev-app/src/styles.scss"
- ],
- "scripts": []
- }
+ "builder": "@angular/build:unit-test"
},
"lint": {
"builder": "@angular-eslint/builder:lint",
diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json
index 8ae49e80fa..cd399387f1 100644
--- a/templates/module/angular/package.json
+++ b/templates/module/angular/package.json
@@ -13,15 +13,15 @@
},
"private": true,
"dependencies": {
- "@abp/ng.account": "~10.1.0-rc.3",
- "@abp/ng.components": "~10.1.0-rc.3",
- "@abp/ng.core": "~10.1.0-rc.3",
- "@abp/ng.identity": "~10.1.0-rc.3",
- "@abp/ng.oauth": "~10.1.0-rc.3",
- "@abp/ng.setting-management": "~10.1.0-rc.3",
- "@abp/ng.tenant-management": "~10.1.0-rc.3",
- "@abp/ng.theme.basic": "~10.1.0-rc.3",
- "@abp/ng.theme.shared": "~10.1.0-rc.3",
+ "@abp/ng.account": "~10.1.0",
+ "@abp/ng.components": "~10.1.0",
+ "@abp/ng.core": "~10.1.0",
+ "@abp/ng.identity": "~10.1.0",
+ "@abp/ng.oauth": "~10.1.0",
+ "@abp/ng.setting-management": "~10.1.0",
+ "@abp/ng.tenant-management": "~10.1.0",
+ "@abp/ng.theme.basic": "~10.1.0",
+ "@abp/ng.theme.shared": "~10.1.0",
"@angular/animations": "~21.0.0",
"@angular/aria": "~21.1.0",
"@angular/common": "~21.0.0",
@@ -37,7 +37,7 @@
"zone.js": "~0.15.0"
},
"devDependencies": {
- "@abp/ng.schematics": "~10.1.0-rc.3",
+ "@abp/ng.schematics": "~10.1.0",
"@angular-eslint/builder": "~21.0.0",
"@angular-eslint/eslint-plugin": "~21.0.0",
"@angular-eslint/eslint-plugin-template": "~21.0.0",
@@ -47,19 +47,14 @@
"@angular/cli": "~21.0.0",
"@angular/compiler-cli": "~21.0.0",
"@angular/language-service": "~21.0.0",
- "@types/jasmine": "~3.6.0",
"@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "7.16.0",
"@typescript-eslint/parser": "7.16.0",
"eslint": "^8.0.0",
- "jasmine-core": "~4.0.0",
- "karma": "~6.4.4",
- "karma-chrome-launcher": "~3.1.0",
- "karma-coverage": "~2.1.0",
- "karma-jasmine": "~4.0.0",
- "karma-jasmine-html-reporter": "^1.7.0",
+ "jsdom": "^27.1.0",
"ng-packagr": "~21.0.0",
"symlink": "^2.0.0",
- "typescript": "~5.9.0"
+ "typescript": "~5.9.0",
+ "vitest": "^4.0.0"
}
}
\ No newline at end of file
diff --git a/templates/module/angular/projects/dev-app/karma.conf.js b/templates/module/angular/projects/dev-app/karma.conf.js
deleted file mode 100644
index eee6000f3a..0000000000
--- a/templates/module/angular/projects/dev-app/karma.conf.js
+++ /dev/null
@@ -1,44 +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'),
-
- ],
- client: {
- jasmine: {
- // you can add configuration options for Jasmine here
- // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
- // for example, you can disable the random execution with `random: false`
- // or set a specific seed with `seed: 4321`
- },
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- jasmineHtmlReporter: {
- suppressAll: true // removes the duplicated traces
- },
- coverageReporter: {
- dir: require('path').join(__dirname, '../../coverage/dev-app'),
- subdir: '.',
- reporters: [
- { type: 'html' },
- { type: 'text-summary' }
- ]
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/templates/module/angular/projects/dev-app/src/test.ts b/templates/module/angular/projects/dev-app/src/test.ts
deleted file mode 100644
index 7632e27a11..0000000000
--- a/templates/module/angular/projects/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/testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
diff --git a/templates/module/angular/projects/dev-app/tsconfig.app.json b/templates/module/angular/projects/dev-app/tsconfig.app.json
index 809c09ca71..742c48812c 100644
--- a/templates/module/angular/projects/dev-app/tsconfig.app.json
+++ b/templates/module/angular/projects/dev-app/tsconfig.app.json
@@ -1,14 +1,15 @@
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/app",
"types": []
},
- "files": [
- "src/main.ts",
- "src/polyfills.ts"
- ],
"include": [
- "src/**/*.d.ts"
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "src/**/*.spec.ts"
]
}
diff --git a/templates/module/angular/projects/dev-app/tsconfig.spec.json b/templates/module/angular/projects/dev-app/tsconfig.spec.json
index a8ce1d396b..ff7db766ac 100644
--- a/templates/module/angular/projects/dev-app/tsconfig.spec.json
+++ b/templates/module/angular/projects/dev-app/tsconfig.spec.json
@@ -1,18 +1,16 @@
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
"types": [
- "jasmine",
+ "vitest/globals",
"node"
]
},
- "files": [
- "src/test.ts",
- "src/polyfills.ts"
- ],
"include": [
- "src/**/*.spec.ts",
- "src/**/*.d.ts"
+ "src/**/*.d.ts",
+ "src/**/*.spec.ts"
]
}
diff --git a/templates/module/angular/projects/my-project-name/karma.conf.js b/templates/module/angular/projects/my-project-name/karma.conf.js
deleted file mode 100644
index 4fa9d617e5..0000000000
--- a/templates/module/angular/projects/my-project-name/karma.conf.js
+++ /dev/null
@@ -1,44 +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'),
-
- ],
- client: {
- jasmine: {
- // you can add configuration options for Jasmine here
- // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
- // for example, you can disable the random execution with `random: false`
- // or set a specific seed with `seed: 4321`
- },
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- jasmineHtmlReporter: {
- suppressAll: true // removes the duplicated traces
- },
- coverageReporter: {
- dir: require('path').join(__dirname, '../../coverage/my-project-name'),
- subdir: '.',
- reporters: [
- { type: 'html' },
- { type: 'text-summary' }
- ]
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false,
- restartOnFileChange: true
- });
-};
diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json
index d8413d9fa7..1084134e47 100644
--- a/templates/module/angular/projects/my-project-name/package.json
+++ b/templates/module/angular/projects/my-project-name/package.json
@@ -4,8 +4,8 @@
"peerDependencies": {
"@angular/common": "~19.1.0",
"@angular/core": "~19.1.0",
- "@abp/ng.core": "~10.1.0-rc.3",
- "@abp/ng.theme.shared": "~10.1.0-rc.3"
+ "@abp/ng.core": "~10.1.0",
+ "@abp/ng.theme.shared": "~10.1.0"
},
"dependencies": {
"tslib": "^2.1.0"
diff --git a/templates/module/angular/projects/my-project-name/src/lib/my-project-name.component.spec.ts b/templates/module/angular/projects/my-project-name/src/lib/my-project-name.component.spec.ts
index 4d6aae3ac8..6176f4d6c6 100644
--- a/templates/module/angular/projects/my-project-name/src/lib/my-project-name.component.spec.ts
+++ b/templates/module/angular/projects/my-project-name/src/lib/my-project-name.component.spec.ts
@@ -1,17 +1,19 @@
-import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MyProjectNameComponent } from './components/my-project-name.component';
import { MyProjectNameService } from '@my-company-name/my-project-name';
import { of } from 'rxjs';
+import { vi } from 'vitest';
describe('MyProjectNameComponent', () => {
let component: MyProjectNameComponent;
let fixture: ComponentFixture;
- const mockMyProjectNameService = jasmine.createSpyObj('MyProjectNameService', {
- sample: of([]),
- });
- beforeEach(waitForAsync(() => {
- TestBed.configureTestingModule({
- declarations: [MyProjectNameComponent],
+ const mockMyProjectNameService = {
+ sample: vi.fn().mockReturnValue(of([])),
+ };
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [MyProjectNameComponent],
providers: [
{
provide: MyProjectNameService,
@@ -19,7 +21,7 @@ describe('MyProjectNameComponent', () => {
},
],
}).compileComponents();
- }));
+ });
beforeEach(() => {
fixture = TestBed.createComponent(MyProjectNameComponent);
diff --git a/templates/module/angular/projects/my-project-name/src/lib/my-project-name.service.spec.ts b/templates/module/angular/projects/my-project-name/src/lib/my-project-name.service.spec.ts
index ec7aeb6c68..0782f6c0b6 100644
--- a/templates/module/angular/projects/my-project-name/src/lib/my-project-name.service.spec.ts
+++ b/templates/module/angular/projects/my-project-name/src/lib/my-project-name.service.spec.ts
@@ -1,10 +1,14 @@
import { TestBed } from '@angular/core/testing';
import { MyProjectNameService } from './services/my-project-name.service';
import { RestService } from '@abp/ng.core';
+import { vi } from 'vitest';
describe('MyProjectNameService', () => {
let service: MyProjectNameService;
- const mockRestService = jasmine.createSpyObj('RestService', ['request']);
+ const mockRestService = {
+ request: vi.fn(),
+ };
+
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
diff --git a/templates/module/angular/projects/my-project-name/src/test.ts b/templates/module/angular/projects/my-project-name/src/test.ts
deleted file mode 100644
index e63a876062..0000000000
--- a/templates/module/angular/projects/my-project-name/src/test.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js';
-import 'zone.js/testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
diff --git a/templates/module/angular/projects/my-project-name/tsconfig.spec.json b/templates/module/angular/projects/my-project-name/tsconfig.spec.json
index 715dd0a5d2..d63beb540b 100644
--- a/templates/module/angular/projects/my-project-name/tsconfig.spec.json
+++ b/templates/module/angular/projects/my-project-name/tsconfig.spec.json
@@ -1,17 +1,15 @@
-/* To learn more about this file see: https://angular.io/config/tsconfig. */
+/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
+/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/spec",
"types": [
- "jasmine"
+ "vitest/globals"
]
},
- "files": [
- "src/test.ts"
- ],
"include": [
- "**/*.spec.ts",
- "**/*.d.ts"
+ "**/*.d.ts",
+ "**/*.spec.ts"
]
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json
index 859bc0c29f..7be3a2f0a3 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json
@@ -3,6 +3,6 @@
"name": "my-app-authserver",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0"
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json
index 00258f3f4f..41d2a4c885 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.3",
- "@abp/aspnetcore.components.server.basictheme": "~10.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0",
+ "@abp/aspnetcore.components.server.basictheme": "~10.1.0"
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json
index 4fb0215c8d..e544c427a0 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0"
}
}
diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json
index 4fb0215c8d..e544c427a0 100644
--- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json
+++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json
@@ -3,6 +3,6 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0-rc.3"
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~10.1.0"
}
}