97 lines
2.8 KiB
TypeScript
97 lines
2.8 KiB
TypeScript
|
jest.mock('@ngx-translate/core');
|
||
|
jest.mock('app/core/auth/account.service');
|
||
|
|
||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||
|
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
||
|
import { FormBuilder } from '@angular/forms';
|
||
|
import { throwError, of } from 'rxjs';
|
||
|
import { TranslateService } from '@ngx-translate/core';
|
||
|
|
||
|
import { AccountService } from 'app/core/auth/account.service';
|
||
|
import { Account } from 'app/core/auth/account.model';
|
||
|
|
||
|
import { SettingsComponent } from './settings.component';
|
||
|
|
||
|
describe('Component Tests', () => {
|
||
|
describe('SettingsComponent', () => {
|
||
|
let comp: SettingsComponent;
|
||
|
let fixture: ComponentFixture<SettingsComponent>;
|
||
|
let mockAccountService: AccountService;
|
||
|
const account: Account = {
|
||
|
firstName: 'John',
|
||
|
lastName: 'Doe',
|
||
|
activated: true,
|
||
|
email: 'john.doe@mail.com',
|
||
|
langKey: 'es',
|
||
|
login: 'john',
|
||
|
authorities: [],
|
||
|
imageUrl: '',
|
||
|
};
|
||
|
|
||
|
beforeEach(
|
||
|
waitForAsync(() => {
|
||
|
TestBed.configureTestingModule({
|
||
|
imports: [HttpClientTestingModule],
|
||
|
declarations: [SettingsComponent],
|
||
|
providers: [FormBuilder, TranslateService, AccountService],
|
||
|
})
|
||
|
.overrideTemplate(SettingsComponent, '')
|
||
|
.compileComponents();
|
||
|
})
|
||
|
);
|
||
|
|
||
|
beforeEach(() => {
|
||
|
fixture = TestBed.createComponent(SettingsComponent);
|
||
|
comp = fixture.componentInstance;
|
||
|
mockAccountService = TestBed.inject(AccountService);
|
||
|
mockAccountService.identity = jest.fn(() => of(account));
|
||
|
mockAccountService.getAuthenticationState = jest.fn(() => of(account));
|
||
|
});
|
||
|
|
||
|
it('should send the current identity upon save', () => {
|
||
|
// GIVEN
|
||
|
mockAccountService.save = jest.fn(() => of({}));
|
||
|
const settingsFormValues = {
|
||
|
firstName: 'John',
|
||
|
lastName: 'Doe',
|
||
|
email: 'john.doe@mail.com',
|
||
|
langKey: 'es',
|
||
|
};
|
||
|
|
||
|
// WHEN
|
||
|
comp.ngOnInit();
|
||
|
comp.save();
|
||
|
|
||
|
// THEN
|
||
|
expect(mockAccountService.identity).toHaveBeenCalled();
|
||
|
expect(mockAccountService.save).toHaveBeenCalledWith(account);
|
||
|
expect(mockAccountService.authenticate).toHaveBeenCalledWith(account);
|
||
|
expect(comp.settingsForm.value).toEqual(settingsFormValues);
|
||
|
});
|
||
|
|
||
|
it('should notify of success upon successful save', () => {
|
||
|
// GIVEN
|
||
|
mockAccountService.save = jest.fn(() => of({}));
|
||
|
|
||
|
// WHEN
|
||
|
comp.ngOnInit();
|
||
|
comp.save();
|
||
|
|
||
|
// THEN
|
||
|
expect(comp.success).toBe(true);
|
||
|
});
|
||
|
|
||
|
it('should notify of error upon failed save', () => {
|
||
|
// GIVEN
|
||
|
mockAccountService.save = jest.fn(() => throwError('ERROR'));
|
||
|
|
||
|
// WHEN
|
||
|
comp.ngOnInit();
|
||
|
comp.save();
|
||
|
|
||
|
// THEN
|
||
|
expect(comp.success).toBe(false);
|
||
|
});
|
||
|
});
|
||
|
});
|