Browse Source
* Configure jest for Desktop and add simple tests * Remove Jest from tsconfig typespull/3541/head
6 changed files with 123 additions and 1 deletions
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
const { pathsToModuleNameMapper } = require("ts-jest"); |
||||
|
||||
const { compilerOptions } = require("./tsconfig"); |
||||
|
||||
const sharedConfig = require("../../libs/shared/jest.config.base"); |
||||
|
||||
module.exports = { |
||||
...sharedConfig, |
||||
preset: "jest-preset-angular", |
||||
setupFilesAfterEnv: ["<rootDir>/test.setup.ts"], |
||||
moduleNameMapper: pathsToModuleNameMapper(compilerOptions?.paths || {}, { |
||||
prefix: "<rootDir>/", |
||||
}), |
||||
}; |
||||
@ -0,0 +1,77 @@
@@ -0,0 +1,77 @@
|
||||
import { NO_ERRORS_SCHEMA } from "@angular/core"; |
||||
import { ComponentFixture, TestBed } from "@angular/core/testing"; |
||||
import { ActivatedRoute } from "@angular/router"; |
||||
import { Substitute } from "@fluffy-spoon/substitute"; |
||||
import { mock, MockProxy } from "jest-mock-extended"; |
||||
|
||||
import { I18nPipe } from "@bitwarden/angular/pipes/i18n.pipe"; |
||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; |
||||
import { LogService } from "@bitwarden/common/abstractions/log.service"; |
||||
import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; |
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; |
||||
import { StateService } from "@bitwarden/common/abstractions/state.service"; |
||||
import { UsernameGenerationService } from "@bitwarden/common/abstractions/usernameGeneration.service"; |
||||
|
||||
import { GeneratorComponent } from "./generator.component"; |
||||
|
||||
describe("GeneratorComponent", () => { |
||||
let component: GeneratorComponent; |
||||
let fixture: ComponentFixture<GeneratorComponent>; |
||||
let platformUtilsServiceMock: MockProxy<PlatformUtilsService>; |
||||
|
||||
beforeEach(() => { |
||||
platformUtilsServiceMock = mock<PlatformUtilsService>(); |
||||
|
||||
TestBed.configureTestingModule({ |
||||
declarations: [GeneratorComponent, I18nPipe], |
||||
providers: [ |
||||
{ |
||||
provide: PasswordGenerationService, |
||||
useClass: Substitute.for<PasswordGenerationService>(), |
||||
}, |
||||
{ |
||||
provide: UsernameGenerationService, |
||||
useClass: Substitute.for<UsernameGenerationService>(), |
||||
}, |
||||
{ |
||||
provide: StateService, |
||||
useClass: Substitute.for<StateService>(), |
||||
}, |
||||
{ |
||||
provide: PlatformUtilsService, |
||||
useValue: platformUtilsServiceMock, |
||||
}, |
||||
{ |
||||
provide: I18nService, |
||||
useClass: Substitute.for<I18nService>(), |
||||
}, |
||||
{ |
||||
provide: ActivatedRoute, |
||||
useClass: Substitute.for<ActivatedRoute>(), |
||||
}, |
||||
{ |
||||
provide: LogService, |
||||
useClass: Substitute.for<LogService>(), |
||||
}, |
||||
], |
||||
schemas: [NO_ERRORS_SCHEMA], |
||||
}).compileComponents(); |
||||
}); |
||||
|
||||
beforeEach(() => { |
||||
fixture = TestBed.createComponent(GeneratorComponent); |
||||
component = fixture.componentInstance; |
||||
fixture.detectChanges(); |
||||
}); |
||||
|
||||
it("should create", () => { |
||||
expect(component).toBeTruthy(); |
||||
}); |
||||
|
||||
describe("usernameTypesLearnMore()", () => { |
||||
it("should call platformUtilsService.launchUri() once", () => { |
||||
component.usernameTypesLearnMore(); |
||||
expect(platformUtilsServiceMock.launchUri).toHaveBeenCalledTimes(1); |
||||
}); |
||||
}); |
||||
}); |
||||
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
import "jest-preset-angular/setup-jest"; |
||||
|
||||
Object.defineProperty(window, "CSS", { value: null }); |
||||
Object.defineProperty(window, "getComputedStyle", { |
||||
value: () => { |
||||
return { |
||||
display: "none", |
||||
appearance: ["-webkit-appearance"], |
||||
}; |
||||
}, |
||||
}); |
||||
|
||||
Object.defineProperty(document, "doctype", { |
||||
value: "<!DOCTYPE html>", |
||||
}); |
||||
Object.defineProperty(document.body.style, "transform", { |
||||
value: () => { |
||||
return { |
||||
enumerable: true, |
||||
configurable: true, |
||||
}; |
||||
}, |
||||
}); |
||||
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
{ |
||||
"extends": "./tsconfig.json", |
||||
"files": ["./test.setup.ts"] |
||||
} |
||||
Loading…
Reference in new issue