mirror of https://github.com/abpframework/abp.git
Browse Source
Migrate ABP Angular templates to Vitest as the default testing framework - Issue 24714pull/24887/head
committed by
GitHub
26 changed files with 141 additions and 446 deletions
@ -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/MyProjectName'), |
|
||||
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 |
|
||||
}); |
|
||||
}; |
|
||||
@ -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() |
|
||||
); |
|
||||
@ -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", |
"extends": "./tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "./out-tsc/app", |
"outDir": "./out-tsc/app", |
||||
"types": [] |
"types": [] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/main.ts", |
|
||||
"src/polyfills.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"src/**/*.d.ts" |
"src/**/*.ts" |
||||
|
], |
||||
|
"exclude": [ |
||||
|
"src/**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -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", |
"extends": "./tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "./out-tsc/spec", |
"outDir": "./out-tsc/spec", |
||||
"types": [ |
"types": [ |
||||
"jasmine" |
"vitest/globals" |
||||
] |
] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/test.ts", |
|
||||
"src/polyfills.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"src/**/*.spec.ts", |
"src/**/*.d.ts", |
||||
"src/**/*.d.ts" |
"src/**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -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/MyProjectName'), |
|
||||
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 |
|
||||
}); |
|
||||
}; |
|
||||
@ -1,98 +1,88 @@ |
|||||
import { CoreTestingModule } from "@abp/ng.core/testing"; |
import { CoreTestingModule } from "@abp/ng.core/testing"; |
||||
import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/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 { NgxValidateCoreModule } from "@ngx-validate/core"; |
||||
import { HomeComponent } from "./home.component"; |
import { HomeComponent } from "./home.component"; |
||||
import { OAuthService } from 'angular-oauth2-oidc'; |
|
||||
import { AuthService } from '@abp/ng.core'; |
import { AuthService } from '@abp/ng.core'; |
||||
|
import { vi } from 'vitest'; |
||||
|
|
||||
describe("HomeComponent", () => { |
describe("HomeComponent", () => { |
||||
let fixture: ComponentFixture<HomeComponent>; |
let fixture: ComponentFixture<HomeComponent>; |
||||
const mockOAuthService = jasmine.createSpyObj('OAuthService', ['hasValidAccessToken']) |
let mockAuthService: { isAuthenticated: boolean; navigateToLogin: ReturnType<typeof vi.fn> }; |
||||
const mockAuthService = jasmine.createSpyObj('AuthService', ['navigateToLogin']) |
|
||||
beforeEach( |
beforeEach(async () => { |
||||
waitForAsync(() => { |
mockAuthService = { |
||||
TestBed.configureTestingModule({ |
isAuthenticated: false, |
||||
declarations: [], |
navigateToLogin: vi.fn() |
||||
imports: [ |
}; |
||||
CoreTestingModule.withConfig(), |
|
||||
ThemeSharedTestingModule.withConfig(), |
await TestBed.configureTestingModule({ |
||||
NgxValidateCoreModule, |
imports: [ |
||||
HomeComponent |
CoreTestingModule.withConfig(), |
||||
], |
ThemeSharedTestingModule.withConfig(), |
||||
providers: [ |
NgxValidateCoreModule, |
||||
/* mock providers here */ |
HomeComponent |
||||
{ |
], |
||||
provide: OAuthService, |
providers: [ |
||||
useValue: mockOAuthService |
{ |
||||
}, |
provide: AuthService, |
||||
{ |
useValue: mockAuthService |
||||
provide: AuthService, |
} |
||||
useValue: mockAuthService |
], |
||||
} |
}).compileComponents(); |
||||
], |
|
||||
}).compileComponents(); |
|
||||
}) |
|
||||
); |
|
||||
|
|
||||
beforeEach(() => { |
|
||||
fixture = TestBed.createComponent(HomeComponent); |
|
||||
fixture.detectChanges(); |
|
||||
}); |
}); |
||||
|
|
||||
it("should be initiated", () => { |
it("should be initiated", () => { |
||||
|
fixture = TestBed.createComponent(HomeComponent); |
||||
|
fixture.detectChanges(); |
||||
expect(fixture.componentInstance).toBeTruthy(); |
expect(fixture.componentInstance).toBeTruthy(); |
||||
}); |
}); |
||||
|
|
||||
|
|
||||
|
|
||||
describe('when login state is true', () => { |
describe('when login state is true', () => { |
||||
beforeAll(() => { |
beforeEach(() => { |
||||
mockOAuthService.hasValidAccessToken.and.returnValue(true) |
mockAuthService.isAuthenticated = true; |
||||
|
fixture = TestBed.createComponent(HomeComponent); |
||||
|
fixture.detectChanges(); |
||||
}); |
}); |
||||
|
|
||||
it("hasLoggedIn should be true", () => { |
it("hasLoggedIn should be true", () => { |
||||
|
expect(fixture.componentInstance.hasLoggedIn).toBe(true); |
||||
expect(fixture.componentInstance.hasLoggedIn).toBeTrue(); |
}); |
||||
expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled() |
|
||||
}) |
|
||||
|
|
||||
it("button should not be exists", () => { |
it("button should not be exists", () => { |
||||
const element = fixture.nativeElement |
const element = fixture.nativeElement; |
||||
const button = element.querySelector('[role="button"]') |
const button = element.querySelector('[role="button"]'); |
||||
expect(button).toBeNull() |
expect(button).toBeNull(); |
||||
}) |
}); |
||||
|
}); |
||||
}) |
|
||||
|
|
||||
describe('when login state is false', () => { |
describe('when login state is false', () => { |
||||
beforeAll(() => { |
beforeEach(() => { |
||||
mockOAuthService.hasValidAccessToken.and.returnValue(false) |
mockAuthService.isAuthenticated = false; |
||||
|
fixture = TestBed.createComponent(HomeComponent); |
||||
|
fixture.detectChanges(); |
||||
}); |
}); |
||||
|
|
||||
it("hasLoggedIn should be false", () => { |
it("hasLoggedIn should be false", () => { |
||||
|
expect(fixture.componentInstance.hasLoggedIn).toBe(false); |
||||
expect(fixture.componentInstance.hasLoggedIn).toBeFalse(); |
}); |
||||
expect(mockOAuthService.hasValidAccessToken).toHaveBeenCalled() |
|
||||
}) |
|
||||
|
|
||||
it("button should be exists", () => { |
it("button should be exists", () => { |
||||
const element = fixture.nativeElement |
const element = fixture.nativeElement; |
||||
const button = element.querySelector('[role="button"]') |
const button = element.querySelector('[role="button"]'); |
||||
expect(button).toBeDefined() |
expect(button).toBeDefined(); |
||||
}) |
}); |
||||
describe('when button clicked', () => { |
|
||||
|
|
||||
|
describe('when button clicked', () => { |
||||
beforeEach(() => { |
beforeEach(() => { |
||||
const element = fixture.nativeElement |
const element = fixture.nativeElement; |
||||
const button = element.querySelector('[role="button"]') |
const button = element.querySelector('[role="button"]'); |
||||
button.click() |
button.click(); |
||||
}); |
}); |
||||
|
|
||||
it("navigateToLogin have been called", () => { |
it("navigateToLogin have been called", () => { |
||||
expect(mockAuthService.navigateToLogin).toHaveBeenCalled() |
expect(mockAuthService.navigateToLogin).toHaveBeenCalled(); |
||||
}) |
}); |
||||
}) |
}); |
||||
}) |
}); |
||||
|
|
||||
}); |
}); |
||||
|
|||||
@ -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() |
|
||||
); |
|
||||
@ -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", |
"extends": "./tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "./out-tsc/app", |
"outDir": "./out-tsc/app", |
||||
"types": [] |
"types": [] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/main.ts", |
|
||||
"src/polyfills.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"src/**/*.d.ts" |
"src/**/*.ts" |
||||
|
], |
||||
|
"exclude": [ |
||||
|
"src/**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -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", |
"extends": "./tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "./out-tsc/spec", |
"outDir": "./out-tsc/spec", |
||||
"types": [ |
"types": [ |
||||
"jasmine" |
"vitest/globals" |
||||
] |
] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/test.ts", |
|
||||
"src/polyfills.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"src/**/*.spec.ts", |
"src/**/*.d.ts", |
||||
"src/**/*.d.ts" |
"src/**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -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 |
|
||||
}); |
|
||||
}; |
|
||||
@ -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() |
|
||||
); |
|
||||
@ -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", |
"extends": "../../tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "../../out-tsc/app", |
"outDir": "../../out-tsc/app", |
||||
"types": [] |
"types": [] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/main.ts", |
|
||||
"src/polyfills.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"src/**/*.d.ts" |
"src/**/*.ts" |
||||
|
], |
||||
|
"exclude": [ |
||||
|
"src/**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -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", |
"extends": "../../tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "../../out-tsc/spec", |
"outDir": "../../out-tsc/spec", |
||||
"types": [ |
"types": [ |
||||
"jasmine", |
"vitest/globals", |
||||
"node" |
"node" |
||||
] |
] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/test.ts", |
|
||||
"src/polyfills.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"src/**/*.spec.ts", |
"src/**/*.d.ts", |
||||
"src/**/*.d.ts" |
"src/**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
@ -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 |
|
||||
}); |
|
||||
}; |
|
||||
@ -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() |
|
||||
); |
|
||||
@ -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", |
"extends": "../../tsconfig.json", |
||||
"compilerOptions": { |
"compilerOptions": { |
||||
"outDir": "../../out-tsc/spec", |
"outDir": "../../out-tsc/spec", |
||||
"types": [ |
"types": [ |
||||
"jasmine" |
"vitest/globals" |
||||
] |
] |
||||
}, |
}, |
||||
"files": [ |
|
||||
"src/test.ts" |
|
||||
], |
|
||||
"include": [ |
"include": [ |
||||
"**/*.spec.ts", |
"**/*.d.ts", |
||||
"**/*.d.ts" |
"**/*.spec.ts" |
||||
] |
] |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue