// Wczytanie niezbędnych bibliotek polyfill i testowania.
import 'reflect-metadata';
import 'zone.js';
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';
import * as testing from '@angular/core/testing';
import * as testingBrowser from '@angular/platform-browser-dynamic/testing';

// Niestety nie ma zmiennej `__karma__`. Należy ją zadeklarować jak każdą inną.
declare var __karma__: any;
declare var require: any;

// Uniemożliwienie przedwczesnego uruchomienia Karma.
__karma__.loaded = function () {};

// Najpierw trzeba zainicjalizować środowisko testowe Angular.
testing.getTestBed().initTestEnvironment(
    testingBrowser.BrowserDynamicTestingModule,
    testingBrowser.platformBrowserDynamicTesting()
);

// Następnym krokiem jest odszukanie wszystkich testów.
const context = require.context('../', true, /\.spec\.ts$/);

// Na końcu trzeba wczytać moduły.
context.keys().map(context);

// Teraz Karma może już uruchomić testy.
__karma__.start();
