import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { Injectable, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { By } from '@angular/platform-browser';
import { Observable, of, from } from 'rxjs';
//import {TranslateHttpLoader} from "@ngx-translate/http-loader";
//import {HttpClient, HttpClientModule} from "@angular/common/http";
//import {MissingTranslationHandler, TranslateLoader, TranslateModule, MissingTranslationHandlerParams, TranslateService} from "@ngx-translate/core";

<% for(var key in imports) { -%>
import {<%- imports[key].map(el => `${el}`).join(', ') -%>} from '<%- key -%>';
<% } -%>
<%-                        -%>

describe('<%= className %>', () => {
  let fixture;
  let component;

  beforeEach(() => {
    TestBed.configureTestingModule({

      /* imports: [
      HttpClientModule, TranslateModule.forRoot({
        missingTranslationHandler: {provide: MissingTranslationHandler, useClass: NbMissingTranslationHandler},
        loader: {
          provide: TranslateLoader,
          useFactory: (http: HttpClient) => new TranslateHttpLoader(http, 'assets/i18n/lang/', '.json'),
          deps: [HttpClient]
        }
      })
    ], */
      declarations: [
        <%= className %>
      ],
      providers: [
      //TranslateService, TranslateLoader,
        <% for(var key in providers) { %>
        <%- providers[key]+ ',' %><% } %>
      ],
      schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
    }).compileComponents();
    fixture = TestBed.createComponent(<%= className %>);
    component = fixture.debugElement.componentInstance;
  });

  it('should create a component', async () => {
    expect(component).toBeTruthy();
  });
  
  <% for(var key in functionTests) { -%>
  <%- functionTests[key] -%>
  <% } -%>
  
});

/*
export class NbMissingTranslationHandler implements MissingTranslationHandler {
  handle(params: MissingTranslationHandlerParams) {
    return 'not found-' + params;
  }
} */

<% for(var key in mocks) { -%>
<%- mocks[key] -%>
<% } -%>
