blob: 6d64e580123926acd50fb42e9f2e7fc43acb9595 [file] [log] [blame]
/********************************************************************************
* Copyright (c) 2015-2020 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
********************************************************************************/
import { async, TestBed, inject } from '@angular/core/testing';
import { BaseRequestOptions, Http, HttpModule, Response, ResponseOptions } from '@angular/http';
import { MockBackend } from '@angular/http/testing';
import { ViewService } from './tableview.service';
import { PropertyService } from '../core/property.service';
import { PreferenceService, Scope } from '../core/preference.service';
import { HttpErrorHandler } from '../core/http-error-handler';
import { MDMNotificationService } from '../core/mdm-notification.service';
import { TranslateModule } from '@ngx-translate/core';
describe ( 'TableviewService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
HttpModule,
TranslateModule.forRoot(),
],
providers: [
ViewService,
PropertyService,
PreferenceService,
MockBackend,
BaseRequestOptions,
HttpErrorHandler,
MDMNotificationService,
{
provide: Http,
useFactory: (backend, options) => new Http(backend, options),
deps: [MockBackend, BaseRequestOptions]
}]
});
});
describe('getViews()', () => {
it('should return view from preference', async(inject([ViewService, MockBackend], (tableviewService, mockBackend) => {
mockBackend.connections.subscribe(conn => {
const mockResponse = {
preferences: [
{
id: 22,
key: 'tableview.view.Test',
scope: Scope.USER,
source: null,
user: 'sa',
value: '{"columns":[{"type":"Test","name":"Name"},{"type":"TestStep","name":"Name"}],"name":"Test"}'
}
]};
conn.mockRespond(new Response(new ResponseOptions({ body: mockResponse })));
});
tableviewService.getViews().subscribe(prefViews => {
expect(prefViews.length).toBe(1);
expect(prefViews[0].scope).toBe(Scope.USER);
expect(prefViews[0].view.columns.length).toBe(2);
});
})));
it('should return default view, if no view preferences are available',
async(inject([ViewService, MockBackend], (tableviewService, mockBackend) => {
mockBackend.connections.subscribe(conn => {
const mockResponse = { preferences: [] };
conn.mockRespond(new Response(new ResponseOptions({ body: mockResponse })));
});
tableviewService.getViews().subscribe(prefViews => {
expect(prefViews.length).toBe(1);
expect(prefViews[0].scope).toBe(Scope.SYSTEM);
expect(prefViews[0].view.columns.length).toBe(1);
});
})));
});
});