import { ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

import { AccordionModule } from 'ngx-bootstrap';
import { ToastrModule } from 'ngx-toastr';
import { ToastrService } from 'ngx-toastr';
import { UrlDisplayComponent } from './url-display.component';
import { CRITERIA_LIST } from '../../../../settings/test-data';

describe('[Search][Result] Component: UrlDisplayComponent', () => {
    let component: UrlDisplayComponent;
    let fixture: ComponentFixture<UrlDisplayComponent>;

    beforeEach(() => {
        TestBed.configureTestingModule({
            declarations: [UrlDisplayComponent],
            imports: [AccordionModule.forRoot(), BrowserAnimationsModule, ToastrModule.forRoot()],
            providers: [ToastrService]
        });
        fixture = TestBed.createComponent(UrlDisplayComponent);
        component = fixture.componentInstance;
    });

    it('should create the component', () => {
        expect(component).toBeTruthy();
    });

    it('#getUrl() should construct url', () => {
        component.apiPath = 'http://test.com';
        component.instanceName = 'instance';
        component.datasetName = 'dataset';
        component.outputList = [1, 2, 3];
        component.criteriaList = [];
        let url = component.getUrl();
        console.log(url);
        expect(url).toBe('http://test.com/search/dataset?a=1;2;3');
        component.criteriaList = CRITERIA_LIST;
        url = component.getUrl();
        expect(url).toBe('http://test.com/search/dataset?a=1;2;3&c=1::eq::fd_crit_1;2::eq::fd_crit_2');
    });
});