mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-06-01 06:50:42 +00:00
94 lines
3.3 KiB
TypeScript
94 lines
3.3 KiB
TypeScript
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
import { FormsModule } from '@angular/forms';
|
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
import { MatIconModule } from '@angular/material/icon';
|
|
import { MatInputModule } from '@angular/material/input';
|
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
import { MapSettingsService } from '../../services/mapsettings.service';
|
|
import { SettingsService } from '../../services/settings.service';
|
|
import { ConsoleService } from '../../services/settings/console.service';
|
|
import { ToasterService } from '../../services/toaster.service';
|
|
import { MockedToasterService } from '../../services/toaster.service.spec';
|
|
import { UpdatesService } from '../../services/updates.service';
|
|
import { autoSpy } from '../project-map/console-wrapper/console-wrapper.component.spec';
|
|
import { SettingsComponent } from './settings.component';
|
|
|
|
describe('SettingsComponent', () => {
|
|
let component: SettingsComponent;
|
|
let fixture: ComponentFixture<SettingsComponent>;
|
|
let settingsService: SettingsService;
|
|
let mapSettingsService = {
|
|
integrateLinkLabelsToLinks: true,
|
|
toggleIntegrateInterfaceLabels(val: boolean) {},
|
|
toggleOpenReadme(val: boolean) {},
|
|
toggleOpenConsolesInWidget(val: boolean) {}
|
|
};
|
|
let consoleService;
|
|
let updatesService = autoSpy(UpdatesService);
|
|
|
|
beforeEach(async(() => {
|
|
consoleService = {
|
|
command: 'command',
|
|
};
|
|
|
|
TestBed.configureTestingModule({
|
|
imports: [
|
|
MatExpansionModule,
|
|
MatCheckboxModule,
|
|
FormsModule,
|
|
BrowserAnimationsModule,
|
|
MatIconModule,
|
|
MatFormFieldModule,
|
|
MatInputModule,
|
|
],
|
|
providers: [
|
|
SettingsService,
|
|
{ provide: ToasterService, useClass: MockedToasterService },
|
|
{ provide: ConsoleService, useValue: consoleService },
|
|
{ provide: MapSettingsService, useValue: mapSettingsService },
|
|
{ provide: UpdatesService, useValue: updatesService },
|
|
],
|
|
declarations: [SettingsComponent],
|
|
}).compileComponents();
|
|
|
|
settingsService = TestBed.get(SettingsService);
|
|
}));
|
|
|
|
beforeEach(() => {
|
|
fixture = TestBed.createComponent(SettingsComponent);
|
|
component = fixture.componentInstance;
|
|
fixture.detectChanges();
|
|
});
|
|
|
|
it('should create', () => {
|
|
expect(component).toBeTruthy();
|
|
});
|
|
|
|
it('should get and save new settings', () => {
|
|
const settings = {
|
|
crash_reports: true,
|
|
experimental_features: true,
|
|
angular_map: false,
|
|
console_command: '',
|
|
};
|
|
const getAll = spyOn(settingsService, 'getAll').and.returnValue(settings);
|
|
const setAll = spyOn(settingsService, 'setAll');
|
|
spyOn(mapSettingsService, 'toggleIntegrateInterfaceLabels');
|
|
spyOn(mapSettingsService, 'toggleOpenConsolesInWidget');
|
|
|
|
component.ngOnInit();
|
|
|
|
expect(getAll).toHaveBeenCalled();
|
|
expect(component.settings).toEqual(settings);
|
|
|
|
component.settings.crash_reports = false;
|
|
component.save();
|
|
|
|
expect(setAll).toHaveBeenCalledWith(settings);
|
|
expect(mapSettingsService.toggleIntegrateInterfaceLabels).toHaveBeenCalled();
|
|
expect(mapSettingsService.toggleOpenConsolesInWidget).toHaveBeenCalled();
|
|
});
|
|
});
|