Problem z konfiguracją karmy z jasmine pod angularowy projekt - TypeError: undefined is not an object (evaluating '_testing.TestBed')

0

Cześć. Próbuję od jakiegoś czasu podpiąć jakieś narzędzia do testów do projektu klepanego w angularze 2, lecz cały czas coś mi wybucha w rękach.
Moje configi i zależności:

Próbuję odpalić example.spec.js, zanim zacznę faktycznie jakieś testy klepać. Wygląda on tak:

import { TestBed } from '@angular/core/testing';
import { FooterComponent } from './layout/footer.component';

describe("A suite", function () {

  beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [FooterComponent]
    });
  })

  const fixture = TestBed.createComponent(FooterComponent);

  it("contains spec with an expectation", function () {
    expect(true).toBe(true);
  });
});

Gdzie FooterComponent możemy uznać za pusty komponent.
Po odpaleniu npm test ukazuje mi się taki widok (https://pastebin.com/pbqap62n):
problem.png

Niestety, próba wygooglowania TypeError: undefined is not an object (evaluating '_testing.TestBed') nie przynosi żadnych powiązanych wyników, dlatego rozkładam ręce i proszę o pomoc, podejrzewając jakiegoś bubla w mojej konfiguracji.

PS. Nie podmieniłem startowego projektu na inny, ponieważ ten jeden nie gryzł się z heroku.

0

Nie znam sie na ekosystemie Angulara, co wypluwa Ci samo:

import { TestBed } from '@angular/core/testing';

console.dir({ TestBed });

?

Być może brakuje Ci jakiś polyfilli - Phantom.js z tego co wiem nie obsługuje w ogóle funkcji ES6, więc sama transpilacja to może być mało. Zainstaluj https://babeljs.io/docs/usage/polyfill/ i zobacz czy pomogło.

0

@Maciej Cąderek nawet tego zrobić nie mogę :/
problem-kontynuacja.png
Polyfille niestety nic nie zmieniły - spróbowałem też odpalić to przy pomocy firefoxowego launchera ale to też nie przyniosło żadnego konkretnego rezultatu:
problem-kontynuacja-2.png

1

Odpaliłem sobie u siebie Twój konfig z testem:

// src/example.spec.js
import { TestBed } from '@angular/core/testing'

describe('A suite', function () {
  it('contains spec with an expectation', function () {
    expect(true).toBe(true)
  })
})

i działa:

» npm test

> [email protected] test /Users/maciek/Projects/playground/spartanpage
> karma start

04 04 2017 21:06:17.774:WARN [watcher]: Pattern "/Users/maciek/Projects/playground/spartanpage/src/**/*.spec.ts" does not match any file.
04 04 2017 21:06:18.010:INFO [karma]: Karma v1.5.0 server started at http://0.0.0.0:9876/
04 04 2017 21:06:18.011:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
04 04 2017 21:06:18.017:INFO [launcher]: Starting browser PhantomJS
04 04 2017 21:06:19.001:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket 4bydpJvnEpz70hgXAAAA with id 6567541
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 SUCCESS (0.003 secs / 0.002 secs)

(chociaż sam seed przy instalacji wywalił mi trochę błedów, ale niezwiązanych z testami)

Róznica taka, że nie Windows tylko OSX.

Edit:
Jednk to samo jak spróbuję uzyć TestBed - czyli odtworzyłem bład, teraz popatrze co tam nie tak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1